clojure - 为什么我们在 Clojure 中需要所有 3 个 - tesser、transd

我正在努力了解 Clojure 中用于并行计算的所有不同抽象。在阅读主题时,我会迷失在冗长文章的所有细节中。

我正在寻找一个简短的答案

  • 为什么我们需要不同的图书馆和
  • 何时使用和何时不使用特定库。

到目前为止,因为它们看起来一样而让我感到困惑的是

  • tesser ,
  • 传感器(带有 core.async 管道),
  • core.reducers(平行折叠)

最佳答案

这(仍然)是一个很好的问题!

我只注意到 tesser 使用缩减器、折叠(或拥抱!),并提供高效和多核处理的途径。它有一些限制,就要求函数是关联的和可交换的而言。两者都有foldr(向右折叠),也就是‘在通往懒惰的道路上’。

传感器也有折叠。显然,左折是“在循环路径上”。看来,有了换能器,您就可以随心所欲了!

我看到的 2014 Vimeo 视频指出了换能器的一个缺点,程序员需要获得中间结果。 Clojure 状态转换器可能会解决很多问题,这些问题已在 tesser 中解决。

我是这个主题的新手,所以我自己正在研究它!

关于clojure - 为什么我们在 Clojure 中需要所有 3 个 - tesser、transducers core.reducers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37321016/

相关文章:

android - 调用 overridePendingTransiton 时应用程序卡住

jenkins - 在非交互式 shell 中运行 docker 命令

spring - Spring 中的 RequestMapping 包

angularjs - angularjs处理异常的方法

c# - WCF:没有 channel 主动监听

javascript - 使用在 Safari 中不起作用的 javascript 禁用键盘快捷键?

macos - XAMPP 错误 - #1932 - 引擎中不存在表 '---'

msbuild - 在自定义目标中计算的编译器附加选项

android - 如何杀死 fragment ?

c# - 标准化相对路径?