本文簡要介紹ruby語言中 Method.curry
的用法。
用法
curry → proc
curry(arity) → proc
根據方法返回一個 curried proc。當調用 proc 時使用的參數數量低於方法的 arity,則返回另一個 curried proc。隻有當提供了足夠的參數來滿足方法簽名時,才會真正調用該方法。
當使用可變參數來確定在調用方法之前需要多少個參數時,應提供可選的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]
相關用法
- Ruby Method.call用法及代碼示例
- Ruby Method.clone用法及代碼示例
- Ruby Method.owner用法及代碼示例
- Ruby Method.inspect用法及代碼示例
- Ruby Method.to_s用法及代碼示例
- Ruby Method.meth << g用法及代碼示例
- Ruby Method.parameters用法及代碼示例
- Ruby Method.arity用法及代碼示例
- Ruby Method.meth >>用法及代碼示例
- Ruby Method.[]用法及代碼示例
- Ruby Method.original_name用法及代碼示例
- Ruby Method.receiver用法及代碼示例
- Ruby Method.===用法及代碼示例
- Ruby MethodExtender.new_alias_name用法及代碼示例
- Ruby Method類用法及代碼示例
- Ruby MatchData.pre_match用法及代碼示例
- Ruby Matrix lup()用法及代碼示例
- Ruby Matrix unitary?()用法及代碼示例
- Ruby Matrix symmetric?()用法及代碼示例
- Ruby Matrix t()用法及代碼示例
- Ruby Matrix identity()用法及代碼示例
- Ruby Matrix hash()用法及代碼示例
- Ruby Module.attr_accessor用法及代碼示例
- Ruby Matrix hadamard_product()用法及代碼示例
- Ruby Matrix singular?()用法及代碼示例
注:本文由純淨天空篩選整理自ruby-lang.org大神的英文原創作品 Method.curry。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。