在Clojure的core.async库中,我们看到一个宏,它创建了一个状态机,用于包装
这似乎是模仿 C#的
go
块以创建处理阻塞IO的通道。这似乎是模仿 C#的
async
和 Go语言的goroutines。
在老练的阴谋家中,他们描述了传递延续的技术。(这似乎是基于call/cc的)。我们还看到了David Nolen在Clojure上关于限定延续的库。
在这里,他们将C#的async
描述为“带有当前延续的调用”。
编辑: 还有一个额外的注释 - David Nolen曾经说过 关于core.async:
在go块内部,它会给你一种假象,让你觉得可以以同步的方式完成这些操作,从而不必手动以continuation-passing style方式编写代码。