Ruby 2.4.0 リファレンスマニュアル > ライブラリ一覧 > 組み込みライブラリ > Methodクラス > curry

instance method Method#curry

curry -> Proc[permalink][rdoc]
curry(arity) -> Proc

self を元にカリー化した Proc を返します。

カリー化した Proc はいくつかの引数をとります。十分な数の引数が与 えられると、元の Proc に引数を渡し て実行し、結果を返します。引数 の個数が足りないときは、部分適用したカリー化 Proc を返します。

[PARAM] arity:
引数の個数を指定します。可変長の引数を指定できるメソッドを カリー化する際には必ず指定する必要があります。
def foo(a,b,c)
  [a, b, c]
end

proc  = self.method(:foo).curry
proc2 = proc.call(1, 2)          #=> #<Proc>
proc2.call(3)                    #=> [1,2,3]

def vararg(*args)
  args
end

proc = self.method(:vararg).curry(4)
proc2 = proc.call(:x)      #=> #<Proc>
proc3 = proc2.call(:y, :z) #=> #<Proc>
proc3.call(:a)             #=> [:x, :y, :z, :a]

[SEE_ALSO] Proc#curry