มีแลมบ์ดาแคลคูลัสทัวริงพิมพ์อยู่หรือไม่? ถ้าเป็นเช่นนั้นมีตัวอย่างอะไรบ้าง?
มีแลมบ์ดาแคลคูลัสทัวริงพิมพ์อยู่หรือไม่? ถ้าเป็นเช่นนั้นมีตัวอย่างอะไรบ้าง?
คำตอบ:
แน่นอน. แลมบ์ดาแคลคูลัสที่พิมพ์จำนวนมากยอมรับการทำให้เป็นมาตรฐานอย่างยิ่งเงื่อนไขการโดยการออกแบบดังนั้นพวกเขาจึงไม่สามารถแสดงการคำนวณแบบสุ่มได้ แต่ระบบพิมพ์สามารถเป็นอะไรก็ได้ที่คุณชอบ; ทำให้มันกว้างพอและคุณสามารถแสดงการคำนวณที่กำหนดได้ทั้งหมด
ระบบประเภทเล็ก ๆ ที่ครอบคลุมชิ้นส่วนทัวริงสมบูรณ์ของแคลคูลัสแลมบ์ดานั้นเป็นระบบที่ยอมรับทุกคำศัพท์ที่พิมพ์ได้ดี ประเภทบนสุด )
ในทางปฏิบัติภาษาการเขียนโปรแกรมการทำงานแบบคงที่มีแกนแคลคูลัสแลมบ์ดาที่พิมพ์อยู่ในแกนกลางซึ่งช่วยให้ผู้จัดทำcombpointคงที่ ยกตัวอย่างเช่นเริ่มต้นด้วยแคลคูลัสแลมบ์ดาพิมพ์เพียง (หรือระบบการพิมพ์ ML หรือระบบ Fหรือระบบการพิมพ์อื่น ๆ ของทางเลือกของคุณ) และเพิ่มกฎที่ทำให้บาง Combinator fixpoint เหมือนพิมพ์ได้ดี แกมมา⊢ ฉ: T → T
ติดกับแคลคูลัสแลมบ์ดาบริสุทธิ์ระบบประเภทที่น่าสนใจคือแคลคูลัสแลมบ์ดาที่มีประเภทจุดตัด
ประเภทแยกมีคุณสมบัติที่น่าสนใจเกี่ยวกับการทำให้เป็นมาตรฐาน:
ดูลักษณะของคำแลมบ์ดาที่มีประเภทสหภาพเพื่อการเข้าใจอย่างลึกซึ้งว่าเหตุใดประเภทของการแยกจึงมีขอบเขตที่น่าทึ่ง
ดังนั้นคุณมีระบบพิมพ์ที่กำหนดภาษาทัวริงที่สมบูรณ์ (เนื่องจากทุกเทอมถูกพิมพ์อย่างดี) และการอธิบายลักษณะอย่างง่ายของการยุติการคำนวณ แน่นอนเนื่องจากระบบประเภทนี้มีลักษณะเป็นมาตรฐานจึงไม่สามารถตัดสินใจได้
ข้อสังเกตเกี่ยวกับชื่อกฎ และ : พวกเขาไม่มีความหมายอย่างเป็นทางการ แต่พวกเขาถูกเลือกอย่างจงใจ ย่อมาจาก "การแนะนำ" เพราะสิ่งเหล่านี้เป็นกฎการแนะนำ - พวกเขาแนะนำสัญลักษณ์ ( หรือ ) เป็นประเภทด้านล่างบรรทัด ในบางครั้งคุณจะพบกฎการกำจัดเมื่อสัญลักษณ์ปรากฏเหนือเส้น แต่ไม่อยู่ด้านล่าง ตัวอย่างเช่นกฎในการพิมพ์เช็คแลมบ์ดาแลมบ์ในแคลคูลัสแลมบ์ดาที่พิมพ์ง่ายคือกฎการแนะนำสำหรับและกฎในการพิมพ์แอปพลิเคชันเป็นกฎการกำจัด .