真面目な話だけど、forとwhileは「ボクの考えた最高な制御構造だから、ブロックの中身を全部見て、どこで変数が使われてるか全部把握してね!」って書いてるようなもんだよ
そこをmapにすると「シーケンスの各要素を関数で変換します」、foldだと「シーケンスの各要素を使って一つの値を出力します」って意図が最初っから込められてる
だから宣言的な方が読み取りやすい