我試圖在Erlang中創建一個sumif
函數,如果謂詞函數的計算結果爲true,它將返回列表中所有元素的總和。以下是我有:Erlang sumif函數
sumif(_, []) -> undefined;
sumif(Fun, [H|T]) -> case Fun(H) of
true -> H + sumif(Fun, T);
false -> sumif(Fun, T)
end.
我還執行了返回true,如果數大於0,否則爲假我自己的POS功能:
pos(A) -> A > 0.
我嘗試使用pos
與sumif
但我m得到這個錯誤:
exception error: bad function pos
爲什麼會發生這種情況?是因爲我的sumif
函數還是pos
?我自己測試了pos
,它似乎工作得很好。
編輯:這可能是因爲我如何調用函數。這就是我目前所說的:hi:sumif(pos,[-1,1,2,-3]).
其中hi
是我的模塊名稱。
謝謝。這也是因爲我稱之爲pos函數的方式也是錯誤的。剛剛學到了新東西! – Ccyan