9

通常、reduceと呼ばれる上位関数は、さまざまな言語で多くの同義語を使用します。私は考えることができる私の頭の上オフreduceの同義語の包括的なリスト

  • foldrfoldl(別名右倍と左倍)(ハスケル)
  • inject(Smalltalkの、ルビー、Groovyの)
  • Aggregate (LINQ)
  • accumulateWikipedia
  • compress
  • Wikipedia

この機能には、さまざまな名前のリストがありますか?そうでない場合は、ここでそれを作ってみましょう。知っておくと便利です。私は各言語からのライブラリの関数名を得ることにあまり興味がない

は、私は型参照「それは文の中で使用されているか」、口語のより多くのを探しています。

答えて

5

すべての権利、これまでの総リストがあるように思わ:

  • catamorphism(一般的な用語、see Kristopher's post
  • reduce(パイソン、Clojureの、Common Lispの、ルビー)
  • reduction( APL)
  • foldr,foldl(ak右倍と左倍)(ハスケル、スキーム)
  • inject(Smalltalkの、ルビー、Groovyの)
  • #inject:into(Smalltalkの)
  • Aggregate(LINQ)
  • accumulateWikipedia
  • compressWikipedia
  • insertion(FP)
  • Insert(j)

誰もが助けてくれてありがとう。後で誰かが良いリストを持ってきたら、その1つを受け入れるようにしましょう!

+0

APLのReduce(/)はJのInsert(http://www.jsoftware.com/help/dictionary/d420.htm)に名前が変更されました。前記改名のイン​​センティブの1つは、インサートが減少を伴わない結果を生み出すことができることである。この演算子の歴史に関するいくつかの注釈は、 "APLの個人的な見解"(http://www.jsoftware.com/papers/APLPersonalView.htm) – kaleidic

+0

ありがとう!私はそれを入れます –

2

以上のカップル:

  • foldr, foldl(スキーム)
  • reduce(パイソン、Clojureの、Common Lispの)
  • #inject:into:(Smalltalkの)
7

あなたは一般的であることに注意かもしれません、この概念は、異図形として知られています。 From wikipedia、またはかわいい品物Functional programming with Bananas, Lenses, Envelopes and Barbed Wireです。 「A tutorial on the universality and expressiveness of fold」から

+2

神聖ながらくた(....あなたの皮肉検出器が上だったホープ)(Haskellは、foldlのように、しかし、長いリストに動作します)私はErik Meijerが素晴らしいと知っていましたが、1991年に彼がすごく元気だったことは分かりませんでした。これらのおかげで:) –

5

倍オペレータは、再帰理論におけるその起源(クリーネ、1952)、 を持っていながら、 遡りにプログラミング言語の中心的な概念として倍の使用還元 APLのオペレータ(アイバーソン、1962)、及び後 FP(Backus, 1978)の挿入オペレータへ。

+0

優れて、 '還元'のように本当に元の用語です。 –

2

スカラはそれらをfoldLeftfoldRightと呼びます。それらはまた、記号/:および:\によって表される。

シードを取らないバリエーションがあります。それらはreduceLeftreduceRightとして知られています。空のシーケンスにエラーが発生しないこれらのバリエーションが再びあります。彼らはreduceLeftOptionreduceRightOptionと呼ばれています。

いずれの方法でもトラバーサル方向が関係しないバリエーションがあります。それらはfoldreduceと呼ばれます。最初は種をとり、2番目は種をとらない。

私はこれを素敵なテーブルに入れることができました。残念ながら、stackoverflowはそれを許可しません。

0

もう1

  • foldlの」、

関連する問題