2010-05-03 階乗計算のシンプルな書き方 Ruby def factorial(x) return (1..x).inject(1) { |f, i| f * i } end inject とか初めて知りました.あとこれも今日知ったのですが Ruby は末尾再帰の最適化がどうやら無いようなので, def factorial(x) return (x > 1)? x * factorial(x - 1): 1 end は律儀に再帰呼び出ししてスタック消費してくれるらしいですよ.