Scheme语言中的无限列表
2018-10-17 本文已影响15人
DarkBubble
根据SICP一书中所说的,在Scheme语言中通过延迟解析和强制求值来实现无限列表。
(define head car)
(define (tail xs) ((cdr xs)))
(define (from x next) (cons x (lambda () (from (next x) next))))
上述的from
过程即可实现无限列表。
在Scheme中还提供了delay
和force
解决了避免多次求值的情况,具体写法略。