模式匹配

Elixir 根據其引數的值匹配對其主體的函式呼叫。

defmodule Math do
    def factorial(0): do: 1
    def factorial(n): do: n * factorial(n - 1)
end

這裡,正數的階乘匹配第二個子句,而 factorial(0) 匹配第一個子句。 (為簡單起見,忽略負數)。Elixir 嘗試從上到下匹配功能。如果第二個函式寫在第一個函式之上,那麼我們會得到一個意想不到的結果,因為它會進行無休止的遞迴。因為 factorial(0)factorial(n) 匹配