Rubyにおける再帰関数

再帰関数とは、関数の定義の中で自分自身を参照するようなものです。
Rubyではどのように書くのだろうと思ったところ、特別なことは何もなく書けるのですね。
例えば、自然数の階乗を計算する関数(メソッド)は、次のように定義できます。

def factorial n
  if n == 1
    1
  elsif n > 1
    n * factorial(n-1)
  else
    raise Exception
  end
end

このとき、

factorial(1) #=> 1
factorial(2) #=> 2
factorial(3) #=> 6
factorial(4) #=> 24
factorial(5) #=> 120

となります。
かんたん、かんたん。