随着新的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)