Ich habe mit Haskell und ghci gespielt, als ich das gefunden habe, was mich wirklich stört:
%Vor% Ich habe das erwartet: [3,4,5,2,3,4,2,1,1]
Es wird jedoch:
Soweit ich das verstehe, sollte es folgendes sein:
%Vor% Wenn ich dies in ghci tippe, ist es wirklich [3,4,5,2,3,4,2,1,1]
.
Und das andere seltsame Ding ist das:
%Vor%Ich erwarte, dass sich foldl und foldl1 auf die gleiche Weise verhalten. Was macht eigentlich foldl?
Sie haben die Argumente umgestellt. foldl
verwendet zuerst den Startwert des Akkumulators und dann die zu faltende Liste. Was in Ihrem Fall passiert, ist, dass foldl
die leere Liste überfaltet und somit den Startwert zurückgibt, der [[3,4,5], [2, 3, 4], [2, 1, 1]]
ist. Dies wird tun, was Sie wollen:
Sie haben die Argumentreihenfolge falsch
%Vor% Der Anfangswert kommt zuerst. In Ihrem Fall war Ihr Anfangswert [[3,4,5],[2,3,4],[2,1,1]]
und Sie haben die leere Liste überflogen, so dass Sie den Anfangswert zurückbekommen haben.