คำถามติดแท็ก lambda-calculus

calcul-แคลคูลัสเป็นระบบที่เป็นทางการสำหรับการกำหนดฟังก์ชันการใช้ฟังก์ชันและการเรียกซ้ำซึ่งเป็นพื้นฐานทางคณิตศาสตร์ของการโปรแกรมเชิงฟังก์ชัน

1
คู่พื้นฐานของ combinator ที่สมบูรณ์แบบที่สุดสำหรับการแสดงผลแบบแบน
ในกระดาษของ Chris Okasaki " Flattening Combinators: Surviving Without วงเล็บ) " เขาแสดงให้เห็นว่ามีสอง combinators เพียงพอและจำเป็นสำหรับการเข้ารหัสนิพจน์ทัวริงที่สมบูรณ์โดยไม่จำเป็นต้องใช้ตัวดำเนินการหรือวงเล็บ เมื่อเทียบกับการเข้ารหัสของ combinatory ตรรกะของ John Trump ใน " Binary Lambda แคลคูลัสและ Combinatory Logic " ผ่านการเข้ารหัสคำนำหน้า S และ K combinators กับผู้ให้บริการแอปพลิเคชันเพียงต้องการ combinators สองตัวสำหรับการแสดงแบบแบนเพิ่มความหนาแน่นของรหัส ผลลัพธ์ของการกำหนดหมายเลข Goedel จะจับคู่ทุกจำนวนเต็มกับนิพจน์ระยะปิดที่มีรูปแบบที่ถูกต้องซึ่งแตกต่างจาก esolangs ที่มีความยาวแคลคูลัสและคำอธิบายน้อยที่สุดซึ่งตัวแทนที่เป็นที่ยอมรับทั่วไปมักอนุญาตให้คำอธิบายโปรแกรมที่ไม่ถูกต้อง อย่างไรก็ตามการเข้ารหัสของ Okasaki นั้นมีประโยชน์มากที่สุดในการทำแผนที่ทางเดียวจากคำศัพท์ lambda แคลคูลัสกับ bitstrings ไม่จำเป็นต้องเป็นวิธีอื่น ๆ เนื่องจาก combinators สองตัวที่ใช้ในการลดนี้ค่อนข้างซับซ้อนเมื่อใช้เป็นคำแนะนำในการทดแทนที่ใช้งานได้จริง …

1
คำศัพท์เชิงตรรกะที่รวมกันมีขนาดใหญ่กว่าเสมอหรือไม่?
ดังนั้นจึงมีอัลกอริทึมในการแปลงคำแคลคูลัสแลมบ์ดาเป็นตรรกะเชิง combinatory โดยใช้ SK combinators มันสร้างสิ่งต่าง ๆ ที่ระเบิดในขนาด ฉันต้องการทราบเพิ่มเติมเกี่ยวกับการระเบิดขนาดนี้ ฉันไม่สามารถนึกอัลกอริทึมที่ดีกว่าได้ ฉันเคยได้ยินภาษาที่ใช้งานได้ซึ่งถูกคอมไพล์แล้วกับ combinators ดังนั้นจึงดูเหมือนว่าจะต้องมีอัลกอริทึมที่ดีกว่า ฉันค้นหาบทความของเดวิดเทอร์เนอร์ในหัวข้อและโดยทั่วไปเขาเพียงบอกว่าจะใช้การเพิ่มประสิทธิภาพไม่กี่และพวกเขาทำให้เกิด "การปรับปรุงที่สำคัญ" "การปรับปรุงที่สำคัญ" หมายความว่าขนาดลดลงเหลือเพียงการเพิ่มพหุนามหรือไม่? มีวิธีที่รู้จักกันในการแปลงคำแลมบ์ดาเป็นตรรกะเชิงการรวมกันที่มีขนาดเพิ่มขึ้นเพียงพหุนาม (หรือน้อยกว่า) หรือไม่? หากอัลกอริทึมดังกล่าวมีอยู่จริงหรือไม่?
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.