recursion vs. iteration, inheritance vs. composition, interfaces vs. abstract classes, etc. are design choices that depend on the problem being solved. Language syntax is different; it's an opinion of the language designer which gives the language its distinctive style, and IMO shouldn't have much leeway in expressing the same thing in multiple ways. It's what gives the language its identity.
For example, here's how you can iterate over a list in scala to print each element:
List(1, 2, 3).foreach(element => println(element))
List(1, 2, 3) foreach { element => println(element) }
List(1, 2, 3).foreach(println(_))
List(1, 2, 3).foreach { println(_) }
List(1, 2, 3).foreach { println _ }
List(1, 2, 3).foreach(println)
List(1, 2, 3) foreach (println)
List(1, 2, 3) foreach { println }
List(1, 2, 3) foreach println