الدوال الرياضية مقارنة بوظائف البرمجة

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

وظائف المبرمج

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

وظائف
نقية _

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

أن تكون نقيًا لا يكفي

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

وظائف شاملة (المجموع

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

وظائف التوقف

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

وظائف الاختبار

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

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

فانکشن های ریاضی در مقایسه با فانکشن های برنامه نویسی