>>964
Haskellなのでよくわからない部分もありますが、
map f (lst!!y)が1つ目のforループの代わりになって
(lst!!y) | y <- [0..length lst - 1]が2つ目のループの代わりになる感じだと理解しました。

>>965
Seq.collect idを使って2次元を1次元に並べ直すんですね。

ありがとうございました。関数型言語は難しいです。
私には、forループの方が分かり易く思えてしまうのですが、皆さんは副作用のない場面ではforよりcollectとかmapを使う感じですか?