التابع curry‎ الخاص بالصنف Method في روبي

من موسوعة حسوب

يعيد curry كائن proc مُجزّء (curried proc) انطلاقا من التابع الذي استُدعي معه. عندما يكون عدد الوسائط الممررة إلى الكتلة proc أقل من رتبة (arity) التابع، فستعاد كتلة proc مجزءة أخرى. ولن يُستدعى التابع فعليًا إلا عندما يتم توفير الوسائط الكافية لإمضاء (signature) التابع.

يجب توفير الوسيط الاختياري arity إن أردت تجزئة (currying) التوابع التي تقبل عددًا متغيرا من الوسائط لتحديد عدد الوسائط المطلوبة قبل استدعاء التابع فعليًا

البنية العامة

curry   proc
curry(arity)  proc

المعاملات

arity‎

في حال التوابع التي تقبل عددًا متغيرا من الوسائط، يحدد arity‎ عدد الوسائط المطلوبة قبل استدعاء التابع فعليًا.

القيمة المُعادة

يعيد curry كائن 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: يعيد نسخة من التابع الذي استُدعي معه.

مصادر