2016-04-30 8 views
1

Wirklich verwirrt über diesen, verwende ich normalerweise die Faltfunktion ohne Problem, aber jetzt kann ich nicht scheint es aus irgendeinem Grund funktioniert und ich, warum nicht finden können.List.fold_left "Dieser Ausdruck hat Typ 'eine Liste, aber ein Ausdruck wurde vom Typ erwartet' b * 'c *' d

L.fold_left(fun (a,b,c) acc -> if !x != 9 then (x:= !x+1; (a,b,c)::acc)else acc) list[];; 

ich habe versucht, auch nur 1 :: acc tun, aber es funktioniert auch nicht.

Antwort

2

nur kümmern in der oder der Argument: fold_left erwartet eine Funktion, bei der das erste Argument der Akkumulator ist (... etwas ist der Akkumulator das "linke" Argument), wohingegen falte_right eine Funktion erwartet, bei der der Akkumulator der zweite ist (... der Akkumulator ist eingeschaltet) das Recht).
Also schreiben Sie einfach fun acc (a,b,c) statt fun (a,b,c) acc und Ihr Code wird kompiliert.

Verwandte Themen