12/08/16 22:54:29.59 .net
カリー化なんかもRubyで簡単にできる時代
def add(a, b)
return a + b
end
def curry(f, a)
return lambda { |b| method(f).call(a, b) }
end
add1 = curry(:add, 1)
p add1.call(2)
Rubyは関数オブジェクトを扱えるので、
置き換えるも何も、既にRubyは関数型言語
当然純粋関数型言語ではないし、関数型言語らしく書かない事もできるけど、
関数型言語としての特性を備えている事に変わりはない
そもそもどの言語でも最近関数オブジェクトの取り入れが盛んで、
関数型言語かどうかという分類が既に成り立たなくなってる
C++11ですらカリー化できる時代、
可能なのはせいぜい純粋関数型言語か否かという区別程度だな
URLリンク(ideone.com)