بناء حياتك المهنية مع Currying in Scala

نشرت: 2020-07-06

جدول المحتويات

مقدمة إلى Scala

تم تطوير لغة Scala ، وهي لغة برمجة ، بواسطة Martin Odersky ومجموعته البحثية في عام 2003. كان تطوير Scala ثورة في عالم البيانات الضخمة. إنها لغة قوية للغاية وجديرة بأن تغير العالم لأجيال قادمة. يعتمد على المترجم ، مما يجعله سريعًا ومهنيًا للغاية.

جزء كبير من فسحة Scala هو Java Virtual Machine (JVM) . تم تجميع رمز Scala لأول مرة بواسطة مترجم Scala ويتم إنشاء رمز البايت المكافئ ، والذي سيتم نقله بعد ذلك إلى Java Virtual Machine لإنتاج العائد. على هذا المنوال ، تحول سكالا إلى طريق التقدم في التعامل مع المقياس الهائل للبيانات الضخمة.

لماذا تحظى سكالا بشعبية كبيرة في مجتمع البرمجة؟

لدى Scala أكثر من مجرد أسباب قليلة يفضلها العديد من المبرمجين. دعونا نناقش القليل منهم هنا.

إنها لغة متعددة النماذج

سكالا مؤهلة بما يكفي لدعم نموذجين للبرمجة ، أي البرمجة الوظيفية (FP) والبرمجة الكائنية (OOP).

بناء جملة مقتضب

المترجم في Scala ، المعروف أيضًا باسم Scala قادر للغاية ويمكنه أداء أكثر مما تتوقع. على سبيل المثال لا الحصر ، يمكن أن تولد hasCode () و equals () و toString () والمزيد.

سهل التعلم

نظرًا لأن Scala يدعم البرمجة الموجهة للكائنات ، فمن السهل نسبيًا التعلم للمبرمجين عند مقارنته بـ Java. مع مجتمع الإنترنت المتنامي بسرعة ، أصبحت منتديات Scala أكثر تكرارًا. يرجع جزء كبير من هذا إلى أنه يحتوي على مكتبات جيدة جنبًا إلى جنب مع تركيب أنيق. بينما يقوم المبرمجون بالمناورة في طريقهم من خلال البرمجة الوظيفية والتعلم ، لا يزال بإمكانهم استخدام مهارات البرمجة الموجهة للكائنات الموجودة مسبقًا وبناء الأشياء في Scala.

تعلم: هل بايثون لغة كائنية التوجه؟

فرص وظيفية جديدة

نظرًا لقابلية التوسع الهائلة ، يزداد الطلب على Scala الآن في الصناعة. مع انتقال علامات تجارية رفيعة المستوى مثل Twitter و Quora و LinkedIn وما إلى ذلك إلى Scala ، فمن الواضح أنهم يبحثون عن مبرمجين ماهرين في Scala. إنها مسألة وقت فقط حتى تصبح سكالا حاجة الساعة للشركات الكبرى الأخرى في الصناعات الأخرى.

مكتوب بشكل ثابت

يستخدم مترجم Scala الاستدلال النوعي الخاص به إلى أقصى قدر من قدرته ، وبالتالي ، على الرغم من أنه يشعر بالديناميكية ، إلا أن Scala مكتوب بشكل منهجي بشكل ثابت. يتيح ذلك استدلال النوع للمتغيرات والوظائف في Scala.

الآن بعد أن فهمنا ماهية سكالا ، دعنا نتقدم ونفهم الكاري في سكالا .

الكاري في سكالا

تم تسمية Currying على اسم عالم الرياضيات الأمريكي Haskell Curry ، المعروف بعمله في المنطق التوافقي.

يمكن تعريف Currying in Scala على أنه الاستراتيجية الكامنة وراء تفسير تقييم الوظيفة التي تأخذ حججًا مختلفة من أجل تقييم مجموعة من الوظائف ، لكل منها وظيفة فردية.

رياضيا يمكننا كتابتها على النحو التالي -

f1 = و (أ)

f2 = f1 (ب)

النتيجة = f2 (ج)

وسيكون الرمز الزائف لهذا -

النتيجة = و (أ) (ب) (ج)

النحو من الكاري

تم ذكر الصيغة المستخدمة لأداء الكاري في Scala على النحو التالي:

def ضرب (أ: كثافة العمليات) (ب: كثافة العمليات) = أ * ب

يمكن كتابتها أيضًا على النحو التالي:

def اضرب (a: Int) = (b: Int) => a * b

قراءة: راتب مطور Java في الهند: للطلاب الجدد وذوي الخبرة

كيفية استدعاء وظيفة الكاري

من أجل استدعاء وظائف الكاري في Scala ، يتعين علينا تعيين قيم للمتغيرات " أ" و " ب" المذكورة في المعادلات أعلاه.

ما هي الوظائف المطبقة جزئيًا؟

مصدر

عندما يتم استدعاء دالة ، يتم إجراؤها من أجل تطبيق الوظيفة على مجموعة من الوسائط. في حالة اجتياز جميع الحجج المتوقعة ، ينتهي بك الأمر إلى تطبيق الوظيفة بالكامل. عندما ترسل بضع وسيطات فقط ، فإنك تحصل على دالة مطبقة جزئيًا. يمنحك هذا إمكانية تقييد بعض الحجج وملء الباقي لاحقًا.

مثال على وظيفة مطبقة جزئيًا -

الخطوة 1: تحديد وظيفة بمعلمات متعددة

scala> def plus (a: int) (b: int) = a + b

زائد: (a: int) (b: int) int

الخطوة 2: أعط فقط قيمة المتغير " scala> def X = X (2) (_)

X: int => int

الناتج هنا ينشئ دالة جديدة 'X' من النوع int => int.

هنا ، يمكن كتابة X على النحو التالي

def X (ب: int) = 2 + ب

ما تصوره المعادلة أعلاه هو أنه عندما يتم زرع X بالقيمة الأولية لـ 2 ، فإنها تجلس هناك في انتظار قيمة int أخرى يمكن أن تضيف إليها.

كمتهدمة ، تمنح الوظائف المطبقة جزئيًا القدرات التالية

  • أنت تؤلف وظيفة عامة.
  • تقوم بعمل وظيفة معينة من الوظيفة العامة.
  • سيكون لديك حق الوصول إلى كلتا الوظيفتين على الرغم من كل شيء.
  • تحتفظ بالرمز الخاص بك جافًا حيث لم يكن عليك نسخ الرمز ولصقه لإنشاء وظيفة جديدة.

اقرأ حول: أفضل 27 أسئلة وأجوبة مقابلة Scala للمبتدئين

مقارنة بين وظائف الكاري والوظائف المطبقة جزئيًا (PAFs)

ترتبط الكاري و PAFs ارتباطًا وثيقًا. قد تبدو الدوال المنحنية والمطبقة جزئيًا متكافئة - كلاهما يحول وظائفك إلى وظائف ذات وسيطات أقل. ومع ذلك ، هناك فرق بينهما.

  • يؤدي Curry in Scala إلى إنشاء وظائف متداخلة أحادية أو أحادية الاتجاه. لا تزال الوظيفة التي تم تغييرها ، إلى حد كبير ، مماثلة للوظيفة الأولى.
  • يُنشئ التطبيق الجزئي وظائف لعدد شخصي من الوسائط. الوظيفة التي تم تغييرها ليست هي نفسها الأولى تمامًا - فهي تحتاج إلى حجج أقل عند مقارنتها بالوظيفة الأولى.
  • Currying in Scala ليس تطبيقًا جزئيًا ، ولكن يمكن تنفيذه جيدًا باستخدام التطبيق الجزئي. لا يمكنك تطبيق الكاري على دالة إذا لم تأخذ الكمية الثابتة من المعلمات. لن تعمل بنجاح خلاف ذلك.

أطر سكالا

فيما يلي بعض أطر عمل Scala البارزة التي يمكنك التحقق منها للحصول على فهم جيد لـ Scala -

إطار اللعب

ارفع الويب

إطار الرامي

هذا هو الوقت في التاريخ حيث تم فتح كل باب حرفيًا للجيل الحالي للتعلم ومتابعة ما يرغبون فيه. هناك معاهد متنوعة وموجهون وخدمات وما إلى ذلك لتمكين التعلم وتوفير التحقق من الصحة في شكل درجات وشهادات.

ما هو أكثر من ذلك ، هو أنه يمكن القيام بذلك الآن من راحة غرفة نوم المرء. كونك لاعبًا رئيسيًا في هذا القطاع الصناعي ، فقد أحدث ثورة في نظام التعليم ، دورة واحدة في كل مرة. من ماجستير إدارة الأعمال إلى القانون إلى التأمين إلى علوم البيانات ، تمكنت upGrad من كسر جميع قيود التعليم المعاصر وإحداث موجة من الثورة في قطاع التعليم.

تغليف

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

إذا كنت مهتمًا بمعرفة المزيد عن برنامج البيانات الضخمة ، فراجع دبلومة PG في تخصص تطوير البرمجيات في برنامج البيانات الضخمة المصمم للمهنيين العاملين ويوفر أكثر من 7 دراسات حالة ومشاريع ، ويغطي 14 لغة وأدوات برمجة ، وأيدٍ عملية- في ورش العمل ، أكثر من 400 ساعة من التعلم الصارم والمساعدة في التوظيف مع الشركات الكبرى.

تعلم دورات تطوير البرمجيات عبر الإنترنت من أفضل الجامعات في العالم. اربح برامج PG التنفيذية أو برامج الشهادات المتقدمة أو برامج الماجستير لتتبع حياتك المهنية بشكل سريع.

إتقان تكنولوجيا المستقبل - البيانات الضخمة

برنامج الشهادة المتقدم في البيانات الضخمة من معهد IIIT بنغالور