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 メソッドが含まれていることを知っているので、知りたいのですが、どちらのスタイルを使用しても違いや制限はありますか、それともまったく同じですか?