Elixirの勉強の続き( 前回の記事 )。今日は関数の複数の句とガードについてです。 関数の複数の句 Elixirでは関数の引数でもパターンマッチを活かすことができます。 iex(1)> Tsuka.sum([1,2,3,4,5,6,7,8,9]) 45 iex(2)> Tsuka.sum([]) 0 iex(3)> Tsuka.sum(1) ** (FunctionClauseError) no function clause matching in Tsuka.sum/1 iex:2: Tsuka.sum(1) Tsuka.sum/1 は配列を受け取ってその要素の総和を求めます。Enum.sum/1と同じものです。 Tsukaモジュール内には、sum関数がふたつ定義されています。このように関数は複数の句を持つことができます。関数に渡した引数とパターンがマッチした句が実行されます。 上