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 では、一般的にネイティブのforandを使用することを好みますfor/listが、この組み込みのようなものはないようです。:whileラケットでシミュレートする最良の方法は何forですか?