嘗試使用mergesort對字符串列表進行排序。我的問題是我不知道如何比較字符串的第一個字母。在比較字符串的時候調用erlang函數
我的想法是這樣的,但是這會導致兩個問題:
merge([],X) -> X;
merge(X,[]) -> X;
merge([X|XS],[Y|YS]) when check_swap(X,Y)-> [X] ++ merge(XS,[Y|YS]);
merge([X|XS],[Y|YS]) -> [Y] ++ merge([X|XS], YS).
sort([]) -> [];
sort([A|[]])-> [A];
sort (L) -> Len=length(L) div 2,
merge(sort(lists:sublist(L, Len)),sort(lists:nthtail(Len, L))).
%check if strings should be swaped or not
change_strings(StingA,StringB) when lists:nth(1,StingA)<lists:nth(1,StringB)->true;
....
問題是,我不能打電話的時候後,情況或如果一個函數。有什麼更好的方法來做到這一點?
./textSort.erl:28:撥打本地/進口功能check_swap/2是在後衛非法
的問題:我如何可以結合使用AND和OR各種條件。我什麼時候使用「,; orl orelse andalso」,以及如何將它們與其他語言結合使用()命令?有沒有更好的辦法做
change_strings(X,Y)when(A < B,B == 3); (A < B,B == 4) - > true;
可能是其容易失敗。剛剛開始在erlang。