SRFI 42中的急切推导可以有一个:while子句在某些条件成立的情况下运行生成器,例如:(list-ec (:while (:range i 10) (< (* i i) 50)) i)返回列表(0 1 2 3 4 5 6 7)(并在 7 处停止迭代,不像ifin(list-ec (:range i 10) (if (< (* i i) 50)) i)那样会继续运行但不会产生更多值)。
在 Racket 中,我通常更喜欢使用原生的forand for/list,但它们似乎没有内置这样的东西。:while在 Racket中模拟的最佳方法是for什么?