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の使い方とかすぐに忘れる・・・(´・ω・`)