と私はエリクシールで階乗関数を作成する:すべての理解再帰はエリクシール
def factorial(0), do: 1
def factorial(n) when n > 0, do: n * factorial(n - 1)
まず、私はどのように簡単かつエレガントなソリューションがエリクシールである愛。しかし、理解できないことが1つあります。 2行目では、私はこのコードを使用しました:do: n * factorial(n - 1)
。関数に5の引数を与えたとします。その行は次のようになります。 do: 5 * factorial(5 - 1)
だからこそ答えが出てこないのはなぜですか?20
?基本的に私の質問です。どのようにそれは基本的なケースに続行することを知っていますか?私たちは、プログラムが0になるまで明示的に言わないのですか?もし誰かがこれを打ち破ることができればそれは素晴らしいだろう!