【问题标题】:Is it possible to implement coroutines using only LISP primitives?是否可以仅使用 LISP 原语来实现协程?
【发布时间】:2011-03-27 02:40:33
【问题描述】:

首先,我是 LISP 新手。

我想要的是协作微线程功能。这可以通过协程获得。据我所知,Scheme 通过延续支持协程。但是,并非所有方案的实施都可能有延续。如果是这样,我可以添加仅使用 LISP 原语的延续功能吗?

【问题讨论】:

  • 你说的是哪种“LISP”?
  • @Svante 主要是方案,但可能是任何类型的 LISP。我谈到了任何 LISP 都有的 LISP“原语”。如果可以的话,我想挑战自己的实现:)
  • 啊。好吧,我想你可能指的是某种古老的方言,一种从人们还在所有大写字母中拼写出来的时候。

标签: lisp scheme coroutine continuation-passing


【解决方案1】:

你可以。 Essentials of Programming Languages 的第 5 章和第 6 章展示了如何在 Scheme 中实现延续。在他的书On Lisp 中,Paul Graham 解释了如何在 Common Lisp 中实现延续(第 20-22 章)。

【讨论】:

  • 我认为这些 CL 的“延续”相对有限。
  • @Rainer 我可以知道限制吗?
  • @Eonil On Lisp 包含在延续上的多线程实现,因此协同例程也可能与该实现一起使用。
猜你喜欢
  • 2021-11-22
  • 1970-01-01
  • 1970-01-01
  • 2019-03-25
  • 1970-01-01
  • 1970-01-01
  • 2019-06-09
  • 2012-04-12
  • 2011-04-01
相关资源
最近更新 更多