我對Erlang很新,我想編譯我的第一個程序,並且在編譯時出現語法錯誤。Erlang基礎知識:編譯時的語法錯誤
語法錯誤我得到指向第2行的指針filter_inside
未定義。在X
之前的最後一行也有語法錯誤。
functions.erl
-module(functions).
-export([filteri/2]).
filteri(_, []) ->
[];
filteri(P,[X|XS]) ->
[(map(P) X)|filteri P XS].
我一直在努力,現在沒有成功調試了大約一個小時,我想知道,如果有人可以幫我鑑定它是關於什麼是使它無法代碼編譯。
非常感謝提前!
但是需要反轉這個列表刪除了很多收益,請參閱http://www.erlang.org/doc/efficiency_guide/myths.html#tail_recursive – rvirding
我做了一段時間的運行,filter_inside2是尾遞歸'2> timer:tc(cmd,filter_inside2,[fun(A) - > A * 2 end,lists:seq(1,10000000)])。 {25707000, [2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42, 44 (cmd,filter_inside,[fun(A) - > A * 2 end,lists:seq(1,10000000)])。 {48666000, [2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42, 44 ,46,48,50,52,54 | ...]}' – Vinod
在64位機器上,空間也達到了200MB左右的尾部和300MB的主體遞歸函數(通過查看進程內存使用原始方法)。列表中只有100毫秒更快:反轉被刪除,我沒有看到任何空間變化。 – Vinod