سؤال حول "تنفيذ البرنامج التعليمي لحساب لامدا المكتوب بشكل مستقل"

cs.stackexchange https://cs.stackexchange.com/questions/128297

  •  29-09-2020
  •  | 
  •  

سؤال

لدي صراع تقني طفيف مع هذا تعليمي رائع.في الصفحة 5 يتحدث البرنامج التعليمي عن كتابة قواعد لامبداس المكتوبة ببساطة ويعرض الحكم التالي على أنه قابل للاشتقاق عبر القواعد على الشكل 3.

لم أتمكن من إثبات أي منهما id ولا const لنفس السبب.خذ على سبيل المثال id مثال.

  • لنفترض أنني أبحث عن قاعدة التحقق من النوع CHK.تقول أنه من أجل check types يجب علي أولا إجراء الاستدلال ثم مقارنة النتيجة بما أتوقعه.
  • للقيام الاستدلال على التطبيق ، لا بد لي من استخدام APP القاعدة التي تجبرني على الفور على استنتاج نوع الجانب الأيسر من التطبيق ، وهي (id :: α -> α)
  • للقيام بذلك أنا باستخدام ANN القاعدة التي تجبرني على التحقق من ذلك α -> α هو نوع (وأستطيع أن أثبت أنه لا توجد مشكلة).ثم حصلت على هذا عارية id رمز ويجب أن تثبت انها نوع ليكون α -> α.
  • أخيرا ، هنا مشكلة.من أجل القيام بذلك سوف تضطر إلى استخدام var القاعدة ، التي تتطلب نوع id ليتم تعيينها في السياق جاما صراحة ، ولكن لم يتم ذلك ، وبالتالي فإن الدليل ينهار.

enter image description here enter image description here

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

المحلول

math \ الرياضيات{معرف}$ و math \ ماثسف {كونست}} ليست متغيرات حساب التفاضل والتكامل ، ولكن السكر النحوي ل lamb \ لامدا س \ اليمينارو س x و lamb \ امدا س \ اليمينارو \ امدا ص \ اليمينارو س x على التوالي.جاء ذلك في نهاية 2.2 دولار ويتم نقله بمهارة عن طريق استخدام خط بلا رقيق بدلا من الخط المائل (هذه اتفاقية مطبعية لهذه الوثيقة بالذات ، وليست اتفاقية مشتركة).

لذلك على سبيل المثال نوع الحكم $$ \ ألفا ::\ أست ، ص ::\ ألفا \ فداش (\ماثسف{معرف} ::\ ألفا \ اليمينارو \ ألفا) \:y ::\ اليمينارو \ ألفا $$ هو أيضا نوع الحكم $$ \ ألفا ::\ أست ، ص ::ألفا فداش ::\ ألفا \ اليمينارو \ ألفا) \:y ::\ اليمينارو \ ألفا .$$ إنه تدوين مختلف لنفس الكائن الرياضي.

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