That strictness can come with real downsides, though. If you are coming from an object-oriented, dynamically typed language like Ruby or JavaScript, Scala can feel like a straightjacket at first. You wouldn't use a for loop in Scala — instead, you have to use higher-order functions like map, filter, and fold. The += operator has no place in the language either, since it would mutate the variable on its left-hand side. If you need to change a value deep inside a nested data structure, you can't simply read the value and mutate it, as you could in other languages.