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

من موسوعة حسوب
< Ruby‏ | Method
مراجعة 19:57، 25 أكتوبر 2018 بواسطة محمد-بغات (نقاش | مساهمات) (أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>curry‎</code> الخاص بالصنف <code>Method</code> في روبي}}</noinclude> تصنيف: Ruby تصني...')
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)
اذهب إلى التنقل اذهب إلى البحث

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

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

curry   proc
curry(arity)  proc

المعاملات

arity‎

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

أمثلة

مثال على استخدام التابع 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: يعيد نسخة من هذا التابع.
  • التابع eql?: يكون كائنان من النوع Method متساويتين إذا كانا مرتبطين بنفس الكائن، ويرجعان إلى نفس التعريف، وكانا مملوكين من قبل نفس الصنف أو الوحدة.

مصادر