الفرق بين المراجعتين لصفحة: «Ruby/Method/curry»
أنشأ الصفحة ب'<noinclude>{{DISPLAYTITLE: التابع <code>curry</code> الخاص بالصنف <code>Method</code> في روبي}}</noinclude> تصنيف: Ruby تصني...' |
لا ملخص تعديل |
||
سطر 3: | سطر 3: | ||
[[تصنيف: Ruby Method]] | [[تصنيف: Ruby Method]] | ||
[[تصنيف: Ruby Method]] | [[تصنيف: Ruby Method]] | ||
يعيد | يعيد <code>curry</code> كائن <code>proc</code> مُجزّء (curried proc) انطلاقا من التابع الذي استُدعي معه. عندما يكون عدد الوسائط الممررة إلى الكتلة <code>proc</code> أقل من رتبة (arity) التابع، فستعاد كتلة <code>proc</code> مجزءة أخرى. ولن يُستدعى التابع فعليًا إلا عندما يتم توفير الوسائط الكافية لإمضاء (signature) التابع. | ||
يجب توفير الوسيط الاختياري arity إن أردت تجزئة (currying) التوابع التي تقبل عددًا متغيرا من الوسائط لتحديد عدد الوسائط المطلوبة قبل استدعاء التابع | |||
يجب توفير الوسيط الاختياري <code>arity</code> إن أردت تجزئة (currying) التوابع التي تقبل عددًا متغيرا من الوسائط لتحديد عدد الوسائط المطلوبة قبل استدعاء التابع فعليًا | |||
==البنية العامة== | ==البنية العامة== | ||
<syntaxhighlight lang="ruby">curry → proc | <syntaxhighlight lang="ruby">curry → proc | ||
سطر 11: | سطر 12: | ||
===<code>arity</code>=== | ===<code>arity</code>=== | ||
في حال التوابع التي تقبل عددًا متغيرا من الوسائط، يحدد <code>arity</code> عدد الوسائط المطلوبة قبل استدعاء التابع فعليًا. | |||
==القيمة المُعادة== | ==القيمة المُعادة== | ||
يعيد <code>curry</code> كائن <code>proc</code> مُجزّء (curried proc) انطلاقا من التابع الذي استُدعي معه. | |||
==أمثلة== | ==أمثلة== | ||
سطر 30: | سطر 32: | ||
proc3.call(:a) #=> [:x, :y, :z, :a]</syntaxhighlight> | proc3.call(:a) #=> [:x, :y, :z, :a]</syntaxhighlight> | ||
==انظر أيضا== | ==انظر أيضا== | ||
* التابع <code>[[Ruby/Method/clone|clone]]</code>: يعيد نسخة من | * التابع <code>[[Ruby/Method/clone|clone]]</code>: يعيد نسخة من التابع الذي استُدعي معه. | ||
==مصادر== | ==مصادر== | ||
*[http://ruby-doc.org/core-2.5.1/Method.html#method-i-curry قسم التابع curry في الصنف Method في توثيق روبي الرسمي.] | *[http://ruby-doc.org/core-2.5.1/Method.html#method-i-curry قسم التابع curry في الصنف Method في توثيق روبي الرسمي.] |
مراجعة 20:00، 25 أكتوبر 2018
يعيد 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
: يعيد نسخة من التابع الذي استُدعي معه.