Erlangのパターンマッチと比較

-module(tut6).
-export([list_max/1]).
list_max([Head|Rest]) ->
   list_max(Rest, Head).
list_max([], Res) ->
    Res;
list_max([Head|Rest], Result_so_far) when Head > Result_so_far ->
    list_max(Rest, Head);
list_max([Head|Rest], Result_so_far)  ->
    list_max(Rest, Result_so_far).
4> tut6:list_max([1,3,4,5]).
5
5> tut6:list_max([1,3,"suz",5]).
"suz"
6> tut6:list_max([1,3,"suz",aiueo]).
"suz"
7> "aiue" > aiue.
true
8> "a" > "b".
false
9> "ai" > "b".
false
10> "ai" > b.  
true
  • 1つの関数は複数の数の引数をとれる
  • exportでどの引数の数のやつかを指定できる
  • 比較は異なった型同士でもできる.