Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
この手順を呼び出すときのスキーム(私はラケットR5RSを使用しています)
(map display '(1 2 3 4 5))
戻ります
12345(#<void> #<void> #<void> #<void> #<void>)
何故ですか?虚空はどうした?
mapリストの各要素に対する関数の各呼び出しの結果を収集し、これらの結果のリストを返します。
map
display未指定の値を返します。#<void>ラケットが使用しているものです。42 も返された可能性があります。
display
#<void>
おそらくタイプミスがあります。返すべきだった
先頭の開き括弧なし。つまり、5 つの値が表示され、次に戻り値が表示されます。
for-eachあなたの場合、代わりに,を使用する必要がありmapます。for-eachとは異なり、非回収mapです。
for-each
また、for-eachリスト項目を左から右に関数に渡すことが保証されています。mapそのような保証はなく、任意の順序でリスト項目を渡すことが許可されています。(ただし、Racket の特定のケースではmap、左から右の順序を使用します。ただし、他の Scheme 実装ではこれに依存することはできません。右から左の順序を使用するものもあり、理論的には、他の順序が可能です。)