观看演示文稿Composable Futures with Akka 2.0后,我很想知道Akka实施期货和代理的其他功能是否会超过Clojure的功能。Akka的期货和代理商对Clojure的同行提供什么?
3
A
回答
3
“Akka的代理商受到Clojure代理商的启发。”这是Akka代理文档中的第一行,并希望它清除代理问题的一部分。就期货而言,它们在概念上是相同的(即在单独的线索上调用操作)。基础实现基于java.util.concurrent
,因此都使用相同的基础架构。
斯卡拉部分: 的重要组成部分,如何组合的字发挥作用(包括代理和期货)。如果您访问akka文档,您会发现您可以在Akka期货上使用map
,filter
等高位函数,即对未来的map
操作会返回另一个未来(以及类似的filter
)。这使您可以轻松撰写/链接期货,并在最终的未来等待最终价值。现在,所有这些都是可能的,因为理解等都是基于Scala(monadic)API,它基本上允许任何新类型提供这些函数的特定实现。
Clojure的部分: 现在对事情Clojure的一面,你知道map
,filter
等都是在集合上工作只是正常功能,即它们的东西的工作,才能移动,因此是从单子不同的概念scala的API。因此,在Clojure中,您将使用不同的方式来创作未来,毕竟Clojure(或一般的Lisp)允许以许多方式进行组合。