Clojure 为什么映射传感器的结果包含大于2的算术数?
问题在标题中。下面我复制了Clojure 为什么映射传感器的结果包含大于2的算术数?,clojure,arity,transducer,Clojure,Arity,Transducer,问题在标题中。下面我复制了映射源的传感器部分: ([f] (fn[rf] (fn ([](rf)) ([结果](射频结果)) ([结果输入] (射频结果(f输入))) ([结果输入和输入];为什么? (射频结果(应用f输入()()()))) 下面是一个链接,其中包含mapmap的定义,可以一次处理多个集合,使用每个集合项的参数调用映射函数: (map + [1 2 3] [4 5 6]) => (5 7 9) +函数对于这些集合中的每对值调用一次,例如(+14),(+25),(+36)
映射源的传感器部分:
([f]
(fn[rf]
(fn
([](rf))
([结果](射频结果))
([结果输入]
(射频结果(f输入)))
([结果输入和输入];为什么?
(射频结果(应用f输入()()())))
下面是一个链接,其中包含map
map
的定义,可以一次处理多个集合,使用每个集合项的参数调用映射函数:
(map + [1 2 3] [4 5 6])
=> (5 7 9)
+
函数对于这些集合中的每对值调用一次,例如(+14)
,(+25)
,(+36)
。非传感器版本如下所示
map
传感器的工作方式相同:
(sequence (map +) [1 2 3] [4 5 6])
=> (5 7 9)
[map
]返回一个惰性序列,该序列由应用f的结果组成
每个coll的第一个项目集,然后将f应用于
每个coll中的第二项集,,直到任何一个coll
筋疲力尽。忽略其他Coll中的任何剩余项。作用
f应该接受colls参数的数量。在以下情况下返回传感器:
不提供任何收藏