سؤال

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

هل كانت مفيدة؟

المحلول

إنها لغة برمجة وظيفية وستعمل بشكل جيد على توسيع تجربتك.

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

أنا يتمنى أجبرتنا مدرستي على تعلم لغة برمجة وظيفية.

نصائح أخرى

لغات مثل LISP (والنظام المرتبط بها ارتباطًا وثيقًا) تُستخدم في البرمجة مثل اللغة اللاتينية بالنسبة للغة الإنجليزية.

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

وينطبق الشيء نفسه على المخطط.

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

على الرغم من أنها ليست سريعة للغاية مثل اللغات المترجمة، كما أنها ليست مفيدة بشكل خاص في خدمة مواقع الويب أو تحليل النص، فقد وجدت أن Scheme (وغيرها من اللثغات بالامتداد) ليس لها مثيل عندما يتعلق الأمر بالبساطة والأناقة والتلاعب الوظيفي القوي من هياكل البيانات المعقدة.لأكون صادقًا، أعتقد في المخطط.إنها اللغة التي أحل بها المشاكل.لا تتخلى عن المخطط أو تتسامح معه فحسب - امنحه فرصة ولن يخيب ظنك.

بالمناسبة، أفضل IDE للمخطط هو DrScheme, ، ويحتوي على امتدادات اللغة للقيام بأي شيء يمكنك القيام به بلغة أخرى، وإذا وجدت شيئًا لا يمكنك استخدامه، فما عليك سوى استخدام C FFI وكتابته بنفسك.

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

في الدورة التدريبية التمهيدية الخاصة بي، نتعلم لغة Java، وأرى الكثير من أصدقائي يعانون من "public static void main" على الرغم من أن هذا ليس الهدف من البرنامج وكيف أن المحترفين ليس لديهم خيار سوى "التلويح باليد" حتى يتمكنوا من ذلك. إعادة أكثر تقدما.لا ترى ذلك في Scheme.

إذا كنت تريد حقًا معرفة ما يمكن أن يفعله Scheme في قطعة من الكعكة يصعب تنفيذها حقًا في لغات مثل Java، أقترح النظر في هذا: http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-12.html#%_sec_1.3

ربما يكون هذا أفضل كتاب مكتوب عن Scheme.

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

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

مشكلتي كانت عندما تعلمنا هذا تعلمنا كليبس معه.لم أتمكن من الحفاظ على المضيق لإنقاذ حياتي.

لكن ما تعلمته منهم هو كيفية كتابة كود c وjava بشكل أفضل.هذا ببساطة بسبب أسلوب البرمجة المختلف الذي تعلمته.لقد قمت بتكييف المزيد من الأسلوب الوظيفي في بعض برامجي وقد ساعدني ذلك في بعض الحالات.

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

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

إذا كنت تتعلم المخطط، فيمكنك معرفة كل شيء عن كيفية تنفيذ أنظمة الكائنات (تلميح:لا يتعلق نظام الكائنات دائمًا بنوع يحتوي على أساليب ومتغيرات مثيل مرتبطة به...).في حين أن هذا النوع من المعرفة لن يساعدك في 95% من عملك اليومي، إلا أنك ستعتمد على تلك المعرفة في 5% من عملك.

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

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

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

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

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top