Haskell vs. erlang: Unterschied in foldl?

8

Ich habe bemerkt, dass es einen Unterschied zwischen Haskell und Erlang gibt, wenn es um foldl geht.

Für foldr geben beide Sprachen die gleichen Ergebnisse zurück:

%Vor%

Die Rückgabewerte für foldl sind jedoch unterschiedlich:

%Vor%

Wie kann dieser Unterschied erklärt werden?

    
Algorithm_NL 12.12.2015, 10:14
quelle

1 Antwort

13

Sie verwirren sich, indem Sie Ihre Falzfunktion nicht vereinfachen.

links falten, Haskell :

%Vor%

fold left, Erlang :

%Vor%

folde rechts, Haskell :

%Vor%

fold right, Erlang :

%Vor%

Daraus wird klar, dass in Haskell die Funktion foldl an (Accumulator, Element) übergeben wird, während die Funktion foldr an (Element, Accumulator) übergeben wird. Auf der anderen Seite werden beide Funktionen in Erlang (Element, Accumulator) übergeben.

    
Nathaniel Waisbrot 12.12.2015, 13:58
quelle

Tags und Links