- ChezSchemeの謎 : (2005/02/08)
-
mapは、与えられたリストの要素を先頭から末尾へ順番に評価するものだと思っていたけど、どうやらChezSchemは違うらしい
(map display (list 1 2 3 4 5))
上記の式をChezSchemeで評価すると
24531
の順番に印字された(戻り値は5つの未定義値を持つリスト)
ためしにGaucheで同様の式を評価してみたら、
12345
と、リストの要素と同じ順番で印字された(Guileも同様だった)
もしや・・・と思って調べてみると、どうやらR5RSではどの順序でリストの要素を評価するかが未定義らしい・・・
内部defineの件といい、ChezSchemeはR5RSのアレな部分に対しても忠実な実装だ
(評価の順序を保証しないというのは、並列計算機を意識してる・・・わけないよなぁ)