nの階乗を求めるプログラムを1行で

Life is beautiful: 教えながら学ぶRuby:イテレータに片思いの問題2を1行でやってみた。
1つ目はすごく下手なやつ。
2つ目はRubyならではって感じ。

def fact1(n) n > 1 ? n * fact1(n-1) : 1 end
def fact2(n) (1..n).to_a.inject(1){|r, i| r * i} end
p fact1(5) #=> 120
p fact2(5) #=> 120
p fact1(1) #=> 1
p fact2(1) #=> 1

injectの使い方とかすぐに忘れる・・・(´・ω・`)