谁能帮助我更好地理解如何编写流?
我知道流是一个无限的值序列,我学习对它们进行编程的方式是将它们表示为一个 thunk,当被调用时会产生一对(1)序列中的第一个元素和(2)一个表示二次无穷大元素的流
例如:
(define powers-of-two
(letrec ([f (lambda (x) (cons x (lambda () (f (* x 2)))))])
(lambda () (f 2))))
我在这里理解它只是产生 2 的幂并且访问这些例如调用(car (powers-of-two))
会导致2
并且调用(car ((cdr (powers-of-two))))
会导致 4
现在我正在尝试编写一个red-blue
在字符串之间交替调用的流red
,blue
但我对如何构造它有点困惑