今日Pascalと話していたら、Rubyのlambdaは.callの省略に[]が使えると言われて、
そういえばそんなので行けたなと思い出す。
というわけで、短くしてみた。
短縮前(.call使用)
f=lambda{|n,m|n>m&&m>0?f.call(n-1,m-1)+f.call(n-1,m):1} p eval"f.call(#{gets})"
短縮後([]使用)
f=lambda{|n,m|n>m&&m>0?f[n-1,m-1]+f[n-1,m]:1} p eval"f[#{gets}]"
短くなったよ。