curry.rb

ohaiさんとこより。

http://www.kmc.gr.jp/~ohai/diary/?date=20051120#p01

すばらしい。好きなところの変数を curry 化したかったので、 Boost::bind チックに。

class Symbol
  def bind(*p1)
    proc do |*p2|
      obj, *args = p1.map do |a|
        (a == :_) ? p2.shift : a
      end
      obj.__send__(self, *args)
    end
  end
end

p (10..20).map(&:/.bind(2.0, :_))
p (10..20).map(&:/.bind(:_, 2.0))
なにかあれば下記メールアドレスへ。
shinichiro.hamaji _at_ gmail.com
shinichiro.h