というわけで、昨日話題を振ったパスカルの三角形の Enumerable 活用版です。 ruby -e '(0..9).map {|k| (1..k).inject([1]) { |a,dummy| (a + [0]).inject([0,[]]) { |(prev, li),x| [x, li + [prev + x]] }[1] } }.each {|l| p l}'もしくは、中間結果をきちんと最後まで持ってくるようにして、 ruby -e '(1..9).inject([[1]]) { |a,dummy| a << (a[-1] + [0]).inject([0,[]]) { |(prev, li),x| [x, li + [prev + x]] }[1] }.each {|l| p l}'実行結果は [1] [1, 1] [1, 2, 1] [1, 3, 3, 1] [1, 4, 6