هاسكل هي لغة برمجة محترفة تعمل منذ أكثر من 20 عامًا من قبل باحثين من اتحاد الجامعات الكبرى. إنه مستدام ومُحسَّن من قبل مجتمع عالمي مفتوح ال...
هاسكل هي لغة برمجة محترفة تعمل منذ أكثر من 20 عامًا من قبل باحثين من اتحاد الجامعات الكبرى. إنه مستدام ومُحسَّن من قبل مجتمع عالمي مفتوح المصدر متحمس ومتفاني. يختلف أسلوب هاسكل اختلافاً جوهرياً عن اللغات الأساسية الأخرى (لغة جافا ، وعائلة C ، وبيثون وغيرها) اليوم. برامج هاسكل هي سلسلة من الوظائف القابلة للتعميم عالية المستوى التي تحدد ما المقصود بالبرنامج ، ويركز المبرمج على الهدف ، وأفضل تصميم ، وضمان أن المنطق صحيح.
هاسكل هو قفزة إلى الأمام من سلسلة من البرمجة التقليدية من التعليمات ذات المستوى المنخفض تخبر الكمبيوتر بالضبط كيفية حساب الأشياء في دقيقة ، خطوة بخطوة. يقوم هاسكل بتحرير مبرمج من العديد من هذه التفاصيل الدقيقة ، ويقلص بشكل كبير الوقت الذي يقضيه في البحث عن الأخطاء وتصحيحها. في نفس الوقت ، يوفر الدعم المحلي للحوسبة عالية الأداء ، متعددة النواة ، القابلة للتوسعة.
هاسكل هي لغة وظيفية بحتة. على عكس سكالا ، لا توجد فدرة للهروب - إذا كنت ترغب في كتابة كود أمني في هاسكل ، فأنت مجبر على استخدام التقنيات التي تمت مناقشتها في الجزء 4 - IO و ST monads ، و / أو مكتبة عالية المستوى بنيت فوق هذه أنواع البيانات ، مثل مكتبة البث التي ناقشناها في الفصل 15. (من الناحية الفنية ، تتضمن Haskell بعض الوظائف ، مثل unsafePerformIO ، التي تسمح لك بتخفيض نقائها. ولكن هذه الوظائف تستخدم في حالات نادرة للغاية ، لأنها لا تختلط بشكل جيد مع Haskell لقد كان هذا النقص في فتحة الهروب أحد الأسباب التي جعلت العديد من الاكتشافات لكيفية كتابة البرامج الوظيفية تأتي من مجتمع هاسكل - في هاسكل ، السؤال ، "كيف يمكنني التعبير عن هذا البرنامج باستخدام وظائف نقية؟" ليس مجرد تمرين فكري ، بل هو شرط أساسي لإنجاز أي شيء!
والجدير بالذكر أن هاسكل هو أيضا بطيء افتراضيا. كما ناقشنا في الفصل 5 ، يقوم Scala (ومعظم اللغات الأخرى) بشكل افتراضي بتقييم وسيطات الدالة قبل استدعاء الدالة. في Haskell ، يتم تمرير الحجج بشكل افتراضي دون تقييم ، كما أن شركات إنشاء البيانات تكون بطيئة. هذا نموذج مختلف جداً للحساب من لغة صارمة ، والتفكير حول الأداء في هاسكل مختلف عن لغة صارمة. هناك فوائد لنموذج هاسكل (ناقشنا بعض هذه الفوائد في الفصل 5) ، على الرغم من أنك إذا قمت بتشغيل برمجة هاسكل ، خذ الوقت الكافي لفهم نموذج تقييم هاسكل ودمجه في تفكيرك.
ملاحظة: لكي تكون أكثر دقة قليلاً ، فإن معيار هاسكل لا يفرض تقنيًا أن تكون جميع الوظائف عبارة عن حاجة تلو الأخرى (بطيء) ويكون المترجم / وقت التشغيل مجانيًا لإجراء تقييم أكثر صرامة طالما أن ذلك لا يؤثر على سلوك البرنامج. كقاعدة عامة ، يقدم تقييم كل حاجة على حدة نموذج عقلي معقول لكيفية تنفيذ برامج هاسكل.
لن نتحدث أكثر من اللازم عن بطء هاسكل في هذا الملحق ، ولكن نتابع بعض الروابط في النهاية لمزيد من المعلومات.
هاسكل هو قفزة إلى الأمام من سلسلة من البرمجة التقليدية من التعليمات ذات المستوى المنخفض تخبر الكمبيوتر بالضبط كيفية حساب الأشياء في دقيقة ، خطوة بخطوة. يقوم هاسكل بتحرير مبرمج من العديد من هذه التفاصيل الدقيقة ، ويقلص بشكل كبير الوقت الذي يقضيه في البحث عن الأخطاء وتصحيحها. في نفس الوقت ، يوفر الدعم المحلي للحوسبة عالية الأداء ، متعددة النواة ، القابلة للتوسعة.
هاسكل هي لغة وظيفية بحتة. على عكس سكالا ، لا توجد فدرة للهروب - إذا كنت ترغب في كتابة كود أمني في هاسكل ، فأنت مجبر على استخدام التقنيات التي تمت مناقشتها في الجزء 4 - IO و ST monads ، و / أو مكتبة عالية المستوى بنيت فوق هذه أنواع البيانات ، مثل مكتبة البث التي ناقشناها في الفصل 15. (من الناحية الفنية ، تتضمن Haskell بعض الوظائف ، مثل unsafePerformIO ، التي تسمح لك بتخفيض نقائها. ولكن هذه الوظائف تستخدم في حالات نادرة للغاية ، لأنها لا تختلط بشكل جيد مع Haskell لقد كان هذا النقص في فتحة الهروب أحد الأسباب التي جعلت العديد من الاكتشافات لكيفية كتابة البرامج الوظيفية تأتي من مجتمع هاسكل - في هاسكل ، السؤال ، "كيف يمكنني التعبير عن هذا البرنامج باستخدام وظائف نقية؟" ليس مجرد تمرين فكري ، بل هو شرط أساسي لإنجاز أي شيء!
والجدير بالذكر أن هاسكل هو أيضا بطيء افتراضيا. كما ناقشنا في الفصل 5 ، يقوم Scala (ومعظم اللغات الأخرى) بشكل افتراضي بتقييم وسيطات الدالة قبل استدعاء الدالة. في Haskell ، يتم تمرير الحجج بشكل افتراضي دون تقييم ، كما أن شركات إنشاء البيانات تكون بطيئة. هذا نموذج مختلف جداً للحساب من لغة صارمة ، والتفكير حول الأداء في هاسكل مختلف عن لغة صارمة. هناك فوائد لنموذج هاسكل (ناقشنا بعض هذه الفوائد في الفصل 5) ، على الرغم من أنك إذا قمت بتشغيل برمجة هاسكل ، خذ الوقت الكافي لفهم نموذج تقييم هاسكل ودمجه في تفكيرك.
ملاحظة: لكي تكون أكثر دقة قليلاً ، فإن معيار هاسكل لا يفرض تقنيًا أن تكون جميع الوظائف عبارة عن حاجة تلو الأخرى (بطيء) ويكون المترجم / وقت التشغيل مجانيًا لإجراء تقييم أكثر صرامة طالما أن ذلك لا يؤثر على سلوك البرنامج. كقاعدة عامة ، يقدم تقييم كل حاجة على حدة نموذج عقلي معقول لكيفية تنفيذ برامج هاسكل.
لن نتحدث أكثر من اللازم عن بطء هاسكل في هذا الملحق ، ولكن نتابع بعض الروابط في النهاية لمزيد من المعلومات.
line 1
line 2
line 3
line 4
line 5
التعليقات