Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Language agnostic reduce同义词综合列表_Language Agnostic_Programming Languages_Functional Programming_Fold - Fatal编程技术网

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
    (又称右折和左折)(哈斯克尔)
  • inject
    (Smalltalk、Ruby、Groovy)
  • 聚合(LINQ)
  • 累计
    ()
  • 压缩()
是否有此函数所有不同名称的综合列表?如果没有,让我们在这里做一个。知道这一点会很有用

我对从每种语言中获取库函数名不太感兴趣,我正在寻找更通俗的“如何在句子中使用它”类型引用。

更多信息:

  • foldr,foldl
    (方案)
  • reduce
    (Python、Clojure、Common Lisp)
  • #注入:到:
    (Smalltalk)

您可能会注意到,一般来说,这个概念被称为反同构,或者是可爱的文章

从“”:

折叠算子起源于递归理论(Kleene,1952), 而在编程语言中,fold是一个中心概念 可追溯到APL的还原运算符(艾弗森,1962年),以及更高版本 到FP()的插入运算符


好的,到目前为止,总清单似乎是:

  • 反同构
    (通称)
  • reduce
    (Python、Clojure、Common Lisp、Ruby)
  • 减少
    (APL)
  • foldr
    foldl
    (又称右折和左折)(Haskell,Scheme)
  • inject
    (Smalltalk、Ruby、Groovy)
  • #注入:注入
    (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个人观点”()