أوضح مطور الويب Alex Kelley هذا الأسبوع أن JavaScript محدود للغاية في البرمجة الوظيفية (FP) وبالتالي ينبغي للمرء التفكير في الترحيل إلى لغة أخرى ك PureScript. ووفقا ل Alex، على الرغم من أن JavaScript تأخذ الكثير من التجريد من البرمجة الوظيفية إلى حد كبير، إلا أنها ليست مناسبة على الإطلاق لبنية العمل هذه. إذا كنت لا تزال تقرر القيام ببرمجة وظيفية باستخدام JavaScript فسوف تدرك بسرعة أنه من السهل أن تضيع وتتوه.

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

اللغة الوظيفية هي لغة برمجة يشجع بناءها وخصائصها البرمجة الوظيفية. في حين أن أصل البرمجة الوظيفية يمكن العثور عليه في lambda-calculus ، يُعتقد أن أقدم لغة وظيفية هي Lisp التي أنشأها McCarthy في ​​عام 1958. ولدت Lisp متغيرات مثل Scheme (1975) و Common Lisp (1984) والتي مثل Lisp غير مصنفة أو غير محددة.

هل هذا يجعل لغة PureScript بديلاً لجافا سكريبت في جميع النقاط أم وظيفياً فقط؟

قال أحد المستخدمين للإجابة على السؤال “PureScript قريب جدًا من قلبي وأصبحت لغتي الوظيفية المفضلة في الأشهر الستة الماضية. يبدو حقًا أنه بناء أساسي مع Haskell مع بعض التحسينات الحديثة (معالجة السلاسل والتسجيلات وتجميعها في JavaScript للقراءة). وأضاف “يمكنك بسهولة إدارة التبعيات لدمج مجموعة الحد الأدنى تمامًا من الحزم اللازمة لتشغيل مشروعك وأعتقد أن أمانه لا يضاهى”.

توفر لك لغة PureScript تطبيقات من جانب العميل والخادم. وفقًا لـ Alex Kelley ستجد أيضًا تمثيلًا لجميع تصميمات لغة FP التي ربما سمعتها أو قرأتها من قبل بما في ذلك الضمادة ومطابقة الأنماط وتحسين مكالمات الذيل وأنواع الإشارات وترتيب أعلى وأعلى. تجدر الإشارة إلى أنه في علم الكمبيوتر وبشكل أكثر تحديداً في البرمجة الوظيفية ، يكون التحريف هو تحويل دالة ذات عدة حجج إلى دالة مع وسيطة تُرجع دالة على بقية الوسائط.

المصدر : هنا

مواضيع ذات صلة
اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني.