Language agnostic reduce同义词综合列表
通常称为Language agnostic reduce同义词综合列表,language-agnostic,programming-languages,functional-programming,fold,Language Agnostic,Programming Languages,Functional Programming,Fold,通常称为reduce的高阶函数在各种语言中都有很多同义词 在我脑海中,我能想到: foldr,foldl(又称右折和左折)(哈斯克尔) inject(Smalltalk、Ruby、Groovy) 聚合(LINQ) 累计() 压缩() 是否有此函数所有不同名称的综合列表?如果没有,让我们在这里做一个。知道这一点会很有用 我对从每种语言中获取库函数名不太感兴趣,我正在寻找更通俗的“如何在句子中使用它”类型引用。更多信息: foldr,foldl(方案) reduce(Python、Clojur
reduce
的高阶函数在各种语言中都有很多同义词
在我脑海中,我能想到:
,foldr
(又称右折和左折)(哈斯克尔)foldl
(Smalltalk、Ruby、Groovy)inject
- 聚合(LINQ)
()累计
- 压缩()
(方案)foldr,foldl
(Python、Clojure、Common Lisp)reduce
(Smalltalk)#注入:到:
好的,到目前为止,总清单似乎是:
(通称)反同构
(Python、Clojure、Common Lisp、Ruby)reduce
(APL)减少
,foldr
(又称右折和左折)(Haskell,Scheme)foldl
(Smalltalk、Ruby、Groovy)inject
(Smalltalk)#注入:注入
- 聚合(LINQ)
()累计
- 压缩()
- 插入(FP)
- 插入(J)
谢谢大家的帮助,如果有人稍后带着更好的名单过来,我一定会接受的 Scala称它们为
foldLeft
和foldRight
。它们也由符号/:
和:\
表示
有些变种不需要种子。它们被称为reduceLeft
和reduceRight
。这些reduce*
还有一些变体,它们不会在空序列上抛出错误。它们被称为reduceLeftOption
和reduceRightOption
在有些情况下,遍历的方向对任何一种方式都不重要。它们被称为fold
和reduce
;第一个有种子,第二个没有
我可以把这个放在一张漂亮的桌子上。可惜stackoverflow不允许这样做。另一个
- foldl'(Haskell,与foldl类似,但适用于较长的列表)
(希望你的反讽探测器是开着的……)天哪,我知道埃里克·梅杰很棒,但我不知道他在1991年也很棒!感谢这些:)非常好,看起来
reduce
确实是原始术语。APL的reduce(/)在J()中被重命名为Insert。上述更名的一个诱因是插入可以产生不涉及减少的结果。关于该操作员历史的一些注释出现在“APL个人观点”()