Rich Hickey在Strange Loop的传输器演示中告诉我们,Clojure 1.6中有两个
map
的实现,一个是在clojure.core
中用于序列,另一个是在core.async
中用于通道。
现在我们知道,在1.7中,有传输器,当给定函数而不是集合时,像map
和filter
这样的高阶函数返回一个foldr
(reduce
)函数。
我试图表达并失败了,就是为什么core.async
函数不能返回序列或类似于Seq
。我感觉'接口'(协议)是不同的,但我看不出来。
如果你从通道中取出第一项,那么肯定可以表示为从序列中取出第一项,难道不是吗?
我的问题是:core.async
可以根据序列实现其函数吗?