Akka的期货和代理商对Clojure的同行提供什么?

时间:2013-05-02 10:50:16

标签: scala clojure akka future

观看演示文稿Composable Futures with Akka 2.0之后,我很想知道Akka实施期货和代理商对Clojure的实施带来了哪些额外的功能。

1 个答案:

答案 0 :(得分:3)

“Akka的特工受到Clojure特工的启发。”这是Akka代理文档中的第一行,希望它能清除代理部分的问题。就期货而言,它们在概念上是相同的(即在单独的线程上调用操作)。底层实现基于java.util.concurrent,因此两者都使用相同的底层基础架构。

Scala部分: 可组合这个词的重要组成部分(代理商和期货)。如果你去akka文档,你会发现你可以在Akka期货上使用更高阶的函数,如mapfilter等,即对未来的map操作会返回另一个未来(同样适用于filter)。这使您可以轻松地组合/链接期货并在最后的未来等待最终价值。现在,所有这一切都是可能的,因为mapfilterfor理解等都基于Scala(monadic)API,它基本上允许任何新类型提供这些函数的特定实现。

Clojure部分: 现在,在事情的背后,你知道mapfilter等只是在集合上工作的正常函数,即它们可以在可以遍历的东西上工作,因此与Monadic API不同。斯卡拉。所以在Clojure中,你将使用不同的方法来构建期货,毕竟Clojure(或者Lisp)在许多方面允许可组合性