التابع Method.curry
في روبي
يعيد curry
كائن proc
مُجزّء (curried proc) انطلاقًا من التابع الذي استُدعي معه. عندما يكون عدد الوسائط الممررة إلى الكتلة proc
أقل من رتبة (arity) التابع، فستعاد كتلة proc
مجزءة أخرى. ولن يُستدعى التابع فعليًا إلا عندما يتم توفير الوسائط الكافية لتوقيع التابع (method signature).
يجب توفير الوسيط الاختياري arity
إن أردت تجزئة (currying) التوابع التي تقبل عددًا متغيرًا من الوسائط لتحديد عدد الوسائط المطلوبة قبل استدعاء التابع فعليًا.
البنية العامة
curry → proc
curry(arity) → proc
المعاملات
arity
في حال التوابع التي تقبل عددًا متغيرًا من الوسائط، يحدد المعامل arity
عدد الوسائط المطلوبة قبل استدعاء التابع فعليًا.
القيمة المعادة
يعاد كائن من النوع proc
مُجزّء (curried proc) انطلاقًا من التابع الذي استُدعي معه.
أمثلة
مثال على استخدام التابع curry
:
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]
انظر أيضا
- التابع
clone
: يعيد نسخة من التابع الذي استُدعي معه.