只使用LISP原语实现协程是否可行?

5

首先,我是一个LISP新手。

我想要获得的是一种协同微线程功能。这可以通过协程来实现。据我所知,Scheme支持使用continuations来实现协程。然而,并非所有Scheme实现都具有continuations。如果没有,我能否只使用LISP基元添加continuation功能?


你在谈论哪种“LISP”? - Svante
@Svante 主要是Scheme,但也可能是任何一种LISP。我谈到了任何LISP都有的LISP“原语”。如果可以的话,我想挑战自己去做一个自己的实现 :) - eonil
3
啊,好的。我认为你可能是在指一些古老的方言,那是在人们仍然用大写字母拼写的时代。 - Svante
1个回答

5
你可以。《编程语言基础》的第5章和第6章展示了如何在Scheme中实现continuations。在保罗·格雷厄姆的书《On Lisp》中,他解释了如何在Common Lisp中实现continuations(第20-22章)。

这些CL的“continuations”相对来说是比较有限的,我认为。 - Rainer Joswig
@Rainer 我能知道限制是什么吗? - eonil
1
@Eonil 在 Lisp 中包含了对延续的多线程实现,因此使用该实现也可能实现协同程序。 - Vijay Mathew

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接