Scheme编程中的轻量级进程、延续传递风格与变量绑定
轻量级进程
轻量级进程(light - weight processes)可以协作完成特定任务,例如打印无限序列的“hey!”。以下是相关代码:
(lambda ()
(call/cc
(lambda (k)
(lwp (lambda () (k #f)))
(start)))))
(lwp (lambda () (let f () (pause) (display "h") (f))))
(lwp (lambda () (let f () (pause) (display "e") (f))))
(lwp (lambda () (let f () (pause) (display "y") (f))))
(lwp (lambda () (let f () (pause) (display "!") (f))))
(lwp (lambda () (let f () (pause) (newline) (f))))
(start)
运行上述代码会不断输出:
hey!
hey!
hey!
hey!
这里还给出了一些相关练习:
1. 练习3.3.1 :使用 call/cc 编写一个程序,无限循环打印从0开始的数字序列,且不使用递归过程和赋值操作。
2. 练习3.3.2 :重写 product
超级会员免费看
订阅专栏 解锁全文
70

被折叠的 条评论
为什么被折叠?



