أرقام الكنيسة: كيفية تشفير الصفر في حساب التفاضل والتكامل Lambda؟

StackOverflow https://stackoverflow.com/questions/1481950

  •  18-09-2019
  •  | 
  •  

سؤال

أنا أتعلم حساب التفاضل والتكامل Lambda ولكن لا أستطيع أن أفهم الترميز للعدد 0.

كيف هو "الوظيفة التي تأخذ في وظيفة وقيمة ثانية وتطبق الوظيفة صفر مرات على الوسيطة"صفر؟ هل هناك أي طريقة أخرى لترميز الصفر؟ هل يمكن لأي شخص هنا مساعدتي في تشفير 0؟

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

المحلول

وظيفة "وظيفة تأخذ في وظيفة وقيمة ثانية وتطبق وظيفة صفر مرات على الوسيطة" هي، بالطبع، وليس الصفر. انه ... انها التشفير من الصفر. عندما تتعامل مع حساب التفاضل والتكامل Lambda العادي، يجب عليك تشفير الأرقام (بالإضافة إلى أنواع بدائية أخرى) بطريقة ما، وهناك عدد قليل من المتطلبات التي تمليها لكل نوع من هذه الأنواع. على سبيل المثال، فإن أحد متطلبات الأرقام الطبيعية هو أن تكون قادرا على إضافة 1 إلى رقم معين، وآخر هو أن تكون قادرا على التمييز بين الأرقام الكبيرة (إذا كنت تريد معرفة المزيد، ابحث عن "الحساب الفني"). الترميز الشعبي الذي نقلت فيه داريو مقتبس عن هاتين الأمرين، ويمثل أيضا عددا صحيحا ن وظيفة يفعل شيئا ما (مشفرا باسم f حجة) N مرات - وهو نوع من طريقة طبيعية لاستخدام المواد الطبيعية.

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

نصائح أخرى

يرى ويكيبيديا:

0 ≡ λf.λx. x
1 ≡ λf.λx. f x
2 ≡ λf.λx. f (f x)
3 ≡ λf.λx. f (f (f x))
...
n ≡ λf.λx. fn x

إذا تعلمت حساب التفاضل والتكامل Lambda، فمن المحتمل أن تعرف بالفعل λxy Arg1. * Arg2 * سوف تقلل إلى Arg2., ، نظرا لأن x استبدال لا شيء، والباقي (λy.y) هو وظيفة الهوية.

يمكنك كتابة صفر في طرق أخرى أخرى (أي التوصل إلى اتفاقية مختلفة)، ولكن هناك أسباب وجيهة لاستخدام λxy.Y. على سبيل المثال، تريد أن تكون الصفر هو أول رقم طبيعي، بحيث إذا قمت بتطبيق وظيفة الخلف لذلك، فإنك تحصل على 1 أو 2 و 3 وما إلى ذلك مع وظيفة λabc.B (ABC)، تحصل عليه λxy.x (y )، exxy.x (x (y))، λxy.x (x (x (x (y))) إلخ، بمعنى آخر، تحصل على نظام عدد صحيح.

علاوة على ذلك، فأنت تريد أن تكون الصفر هو العنصر المحايد فيما يتعلق بالإضافة. مع دالة خلفنا S: = λabc.B (ABC)، يمكننا تحديد ن+ * م * كما ن س م, ، بمعنى آخر، ن مرات تطبيق وظيفة الخلف ل م. وبعد لدينا الصفر λxy.Y يرضي هذا، كل من 0 ثانية م و م S 0 تقليل إلى م.

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