【发布时间】:2011-08-03 12:53:36
【问题描述】:
我正在尝试阅读这段代码:
(define list-iter
(lambda (a-list)
(define iter
(lambda ()
(call-with-current-continuation control-state)))
(define control-state
(lambda (return)
(for-each
(lambda (element)
(set! return (call-with-current-continuation
(lambda (resume-here)
(set! control-state resume-here)
(return element)))))
a-list)
(return 'list-ended)))
iter))
谁能解释一下call-with-current-continuation 在这个例子中是如何工作的?
谢谢
【问题讨论】:
-
SO 上可能有无数其他“什么是呼叫/抄送”问题的重复。我能找到的最规范、最有帮助的一个:stackoverflow.com/questions/612761/what-is-call-cc。
-
我认为这个使用
yield-like 模式的特定示例非常有用,可以独立使用。不过,也许它应该重新命名。
标签: iterator scheme continuations