近日,在qq聊天中看到乙個做erlang程式設計練習題,大致就是判斷乙個列表是否在另乙個列表中出現。
實際上,我雖然學習erlang有段時間,但沒有真正去編寫過軟體或做大量程式設計。最初我寫了這樣一段程式來實現這個功能:
-module(test).
-export([forteen/2]).
forteen(a,b)->fun_sec(a,b,a,b0).
fun_sec(_,,_,_,_)->false;
fun_sec([ha|ta],[hb|tb],a,b,sum) when ha==hb ->
iflength(ta)==0 ->[true,sum];
true ->fun_sec(ta,tb,a,b,sum)
end;
fun_sec(_,_,a,b,sum)->
fun_sec(a,myy(sum+1,b),a,b,sum+1).
myy(_,)->;
myy(sum,[_|t]) when sum /=0 ->myy(sum-1,t);
myy(0,b)->b.
但總覺得不夠erlangic,於是再另行編寫,最後結果如下:
-module(test).
-export([forteen/2]).
forteen(a,b)->fun_sec(a,b,,0).
fun_sec(,_,_,sum) -> [true,sum];
fun_sec(a,b,_,_) when length(a)>length(b) -> false;
fun_sec([h|ta],[h|tb],samelst,sum) ->
fun_sec(ta,tb,[h|samelst],sum);
fun_sec(a,[_|t],,sum)->fun_sec(a,t,,sum+1);
fun_sec(a,b,samelst,sum)->
[_|t]= myy(samelst,b),
fun_sec(myy(samelst,a),t,,sum+1).
myy(,res) -> res;
myy([h|t],res) -> myy(t,[h|res]).
再看第二個程式,就是充分利用了函式引數中的匹配功能,從而達到簡化函式內部語句的複雜性,從而使程式更易懂、易讀。 Erlang程式設計01
erlang程式設計簡介 erlang程式設計 由人民郵電出版社出版發行 圖靈程式設計叢書 作者 joe armstrong 喬 阿姆斯壯 譯者 趙東煒 金尹 錄入 cenzige 詳細資訊 書名原文 programming erlang software for a isbn 978 7 115 ...
Erlang程式設計11
2.4 啟動shell 現在我們正式開始。shell是乙個互動工具,我們長用他來完成與erlang的互動。啟動shell隻後,我們可以輸入表示式,然後shell就會返回這些表示式的值。如果你已經安裝好了erlang,那麼erlang shell erl也就同時安裝好了。要執行他,請開啟乙個傳統的作業...
《Erlang程式設計》 筆記
語法 1.模式匹配 表示乙個模式匹配操作。lhs rhs實際上是這樣乙個過程,對右端求值 rhs 然後將結果與左端 lhs 進行模式匹配。2.分號 逗號 用來分隔函式呼叫,資料構造器以及模式中的引數。句號 後跟乙個空白符號 用來在shell中分隔完整的函式和表示式。分號 用來分隔字句。如分段的函式定...