mapとfor-eachの挙動の違い

mapは引数として手続きとリストをとり、その手続きをリストの各要素に作用させてできた結果のリストを返す。
mapの実行例。

> (map (lambda (x) (* x x))
(list 1 2 3 4)
)
(1 4 9 16)
>

for-eachもmapと同じで、引数として手続きとリストをとる。しかし、結果のリストを作るのではなく、要素のそれぞれに左から右へ順に手続きを作用させる。手続きを要素に作用させて返される値は使わない。印字のような手続きと一緒に使う。
for-eachの実行例。

> (for-each (lambda (x) (newline) (display x))
(list 57 321 88))

57
321
88
>