Technisch ist ein Reduce nicht dasselbe wie ein Foldl (fold-left), das auch als Accumulate bezeichnet werden kann.
Das Beispiel von Jules gegebenen veranschaulicht einen Betrieb sehr gut reduzieren:
step 1: 1 + 2 + 3 + 4
step 2: 3 + 7
step 3: 10
anzumerken, dass das Ergebnis bei jedem Schritt ein Array ist, einschließlich des Endergebnisses, das eine Anordnung von einem Artikel ist.
Klappbarer links ist wie die folgende:
step 0: a = 0
step 1: a = a + 1
step 2: a = a + 2
step 3: a = a + 3
step 4: a = a + 4
step 5: a
Nun Offensichtlich ist diese beide die gleichen Ergebnisse erzielen, aber ein foldl hat ein gut definierte Ergebnis, wenn einen nicht-assoziativen Operator gegeben (wie Subtraktion), wohingegen Ein Reduce-Operator tut dies nicht.
Geben Sie uns einige Hinweise: Über welche Plattform oder Programmiersprache sprechen Sie? Das klingt nicht wie MPI. Und was ist ein "Faltblatt"? –
faltl ist eine linke Falte oder eine Falte mit einem linksassoziativen Operator: Faltung [1,2,3,4] mit + würde ergeben (((1 + 2) + 3) + 4) –