إجابات

ما هو مفهوم currying في سكالا وكيف يمكن استخدامه؟

Currying هي تقنية في برمجة الحوسبة وخاصة في لغة البرمجة سكالا حيث تقوم بتحويل استدعاء دالة أكثر من وسيط (parameter) الى سلسلة من دوال معلقة على بعضها البعض ، كل دالة تستقبل وسيط واحد.

بمعنى آخر ، يمكن حفظ العديد من أجزاء إدخالات الدالة في دوال جديدة ، وتطبيقها على الدالة الأساسية لتوليد الناتج المناسب.

فالدالة التي تستخدم هذه التقنية يجب أن تأخذ عدد من المتغيرات الدخلية زائدة عن المتغير التي يتم الاستدعاء به.

فمثلا ، إذا كانت لدينا دالة فونكيشن تأخذ معلمات A و B و C وتعيد نتيجة دالة رياضية ، يمكن استخدام currying لتوليد دالة جديدة بأقل خطوط ، والتي تاخذ معلمة واحدة في كل مرة. وبهذه الطريقة يتم تحويل الدالة الأصلية إلى مجموعة من الدوال التي تحوي كل وسيط بشكل منفصل، وان كان يمكن ان يستدعى المتغيرات كلها مفردة أيضا.

في سكالا يمكن القيام بالـ currying بشكل بسيط عن طريق إضافة موجز الدالة المستهدفة وتقديم المعلمة الأولى للدالة الناتجة كتابة.

مثال بالسكالا:

“`
def multiply(a: Int, b: Int) = a * b

val multiplyByTwo = multiply(2, _: Int)
“`

في الكود أعلاه طورنا multiply() إلى رمز يمكن تمريره إلى دالة ثانية تسمى multiplyByTwo.

يكفي ذلك لإطلاق الدالة الجديدة فقط دون تحميل جسم multiplyByTwo() بتعريفات متكررة ، أو تمديد لتأثير “موجز” أداء الأصل.

مقالات ذات صلة

زر الذهاب إلى الأعلى
إغلاق

أنت تستخدم إضافة Adblock

يرجى تعطيل مانع الإعلانات حيث أن موقعنا غير مزعج ولا بأس من عرض الأعلانات لك فهي تعتبر كمصدر دخل لنا و دعم مقدم منك لنا لنستمر في تقديم المحتوى المناسب و المفيد لك فلا تبخل بدعمنا عزيزي الزائر