Clojure传感器是否渴望?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Clojure传感器是否渴望?相关的知识,希望对你有一定的参考价值。

在这篇博文中,"CSP and transducers in JavaScript",作者说:

首先,我们必须认识到许多阵列(或其他集合)操作,如mapfilterreverse,可以用reduce来定义。

所以then we see在Clojure中的一些实现并不是懒惰的,他们渴望:

 user> (defn eager-map [f coll]
        (reduce (fn [acc v] (conj acc (f v)))
        []
        coll))
#'user/eager-map
user> (eager-map inc (range 10))
[1 2 3 4 5 6 7 8 9 10]

我的问题是,Clojure传感器是否渴望?

答案

传感器是非常简单的功能 - 它们没有懒惰的概念,或者实际上它们是如何应用的。这就是这个想法的美妙之处 - 通过换能器,我们可以将mapfilter等功能与它们运行的​​东西分开。

所以,是的,它们可以用来构建延迟序列,以及通道和减少。虽然换能器功能调用本身是急切的,但它取决于您将换能器用于调用它的任何事情。懒惰的序列只能在它们被消耗时懒惰地调用传感器,而减速器会急切地使用它们来吐出减少量。

您可以看到in the source,其中sequence用于在带有换能器的集合上构建延迟序列。

以上是关于Clojure传感器是否渴望?的主要内容,如果未能解决你的问题,请参考以下文章

kotlin-从一个片段更改多个片段的小数位

Clojure 中的外部联接

在这个简单的Clojure Ring应用程序中获取默认index.html文件以具有正确的Content-Type的正确方法是什么?

如何正确读取 Clojure 中的 RandomAccessFile?

Java 和 Clojure 与 Leiningen

在 Clojure 中使用变量检查字符串长度