SRFI 42の熱心な内包表記には、いくつかの条件が成立している間、ジェネレーターを実行する句を含めることができます:while
。たとえば、次のようになります:リストを(list-ec (:while (:range i 10) (< (* i i) 50)) i)
返します(0 1 2 3 4 5 6 7)
(そして7 で反復を停止if
します。 in のように(list-ec (:range i 10) (if (< (* i i) 50)) i)
続行するが、それ以上の値を生成しません)。
Racket では、一般的にネイティブのfor
andを使用することを好みますfor/list
が、この組み込みのようなものはないようです。:while
ラケットでシミュレートする最良の方法は何for
ですか?