Ich versuche, eine sumif
Funktion in Erlang, die eine Summe aller Elemente in einer Liste zurückgeben würde, wenn die Prädikatfunktion als wahr ausgewertet wird. Hier ist, was ich habe:Erlang Sumif Funktion
sumif(_, []) -> undefined;
sumif(Fun, [H|T]) -> case Fun(H) of
true -> H + sumif(Fun, T);
false -> sumif(Fun, T)
end.
ich auch meine eigene POS-Funktion implementiert, die true zurückgibt, wenn eine Zahl größer als 0 ist und ansonsten false:
pos(A) -> A > 0.
ich versucht, mit pos
mit sumif
aber ich m Erhalte diesen Fehler:
exception error: bad function pos
Warum passiert das? Ist es wegen meiner Funktion oder pos
? Ich habe pos
auf eigene Faust getestet und es scheint gut zu funktionieren.
Edit: Es könnte sein, weil, wie ich die Funktion aufrufen. So nenne ich es gerade: hi:sumif(pos,[-1,1,2,-3]).
Wobei hi
mein Modulname ist.
Vielen Dank. Es ist auch, weil die Art, wie ich die 'pos'-Funktion aufgerufen habe, auch falsch ist. Habe gerade etwas Neues gelernt! – Ccyan