我开始学习 Scala 编程语言。我对 Erlang 和 Haskell 等 FP 语言有所了解,但我对 for/yield 表达式的含义有疑问,例如:
for (arg <- args) yield arg.length
这将收集具有任何输入参数长度的数组。据我了解,这似乎是普通 FP 编程中的 map 函数:
map (\a -> a * 2) [1, 2, 3] (in Haskell)
我知道 Scala 库包含 scala.collection.map 方法,所以我想知道:使用这两种风格是否有任何区别或限制,或者它们完全相同?