コラッツの問題をRubyで実装してみる
勉強がてら書いてみる。
def collatz count = 0 func = Proc.new do |n| if n == 1 then count else count += 1 if n.even? then func.call(n / 2) else func.call(n * 3 + 1) end end end end (2..10000).each do |i| puts collatz.call(i) end
恥ずかしながらクロージャって理解できてないんだけど、、、こんな感じなんだろうか。。