The version that involves mutation is likely to be slower, since our compiler doesn’t optimize mutation (so that much effort can be spent elsewhere). The idiomatic way to write an imperative loop is ...