首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >直接应用换能器和“转换”产生不同的结果。

直接应用换能器和“转换”产生不同的结果。
EN

Stack Overflow用户
提问于 2016-08-06 23:42:47
回答 1查看 66关注 0票数 0

据我所知,换能器是一种在reduce发生之前转换减速器功能的函数。换句话说,(transduce transducer reducer collection)等同于(reduce (transducer reducer) collection)。所以这两个表达式

代码语言:javascript
复制
(reduce ((map inc) -) 0 [3 4 5])
(transduce (map inc) - 0 [3 4 5])

必须返回相同的值。对吗?

不对

代码语言:javascript
复制
(reduce ((map inc) -) 0 [3 4 5])    -15
(transduce (map inc) - 0 [3 4 5])    15

窃听器还是特征?我的Clojure版本是1.8.0

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-07 00:48:15

结果是,(transduce)实现了一个稍微不同的算法。

(reduce)为集合中的每个元素调用(reducer aggregate element)。总共有一个n调用一个n元素集合。

(transduce)对每个元素调用(reducer aggregate element),然后出于某种原因再次调用(reducer aggregate),进行n+1调用。因此,(transduce)不像(-)所期望的那样工作。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38809642

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档