相关疑难解决方法(0)

Clojure传感器的行为

随着新的clojure 1.7我决定了解我可以使用传感器的位置.我明白他们能给予什么好处,但我找不到正常的编写自定义传感器的例子.

好的,我试着测试发生了什么.我打开了clojure文档.并且有一些例子xf用作参数.第一:这个xf或xfrom是什么意思?这个东西产生了身份传感器

(defn my-identity [xf]
  (fn 
   ([]
     (println "Arity 0.")
     (xf))
   ([result]
     (println "Arity 1: " result " = " (xf result)) 
     (xf result))
   ([result input]
     (println "Arity 2: " result input " = " (xf result input)) 
     (xf result input))))
Run Code Online (Sandbox Code Playgroud)

[result input]从文档示例中获取了变量的命名.我认为它在减少功能的地方result是减少部分并且input是新的集合元素.

所以,当我(transduce my-identity + (range 5))得到结果时10,我期待的结果.然后我读到了eduction,但我无法理解它是什么.无论如何,我做了(eduction my-identity (range 5))并得到了:

Arity 2:  nil 0  =  nil
Arity 2:  nil 1  =  nil …
Run Code Online (Sandbox Code Playgroud)

clojure transducer

11
推荐指数
1
解决办法
1188
查看次数

标签 统计

clojure ×1

transducer ×1