ปัญหาของการเป็นตัวแทนของตัวแปรที่ถูกผูกไว้ในไวยากรณ์และโดยเฉพาะอย่างยิ่งที่ทดแทนการหลีกเลี่ยงการจับภาพเป็นที่รู้จักกันดีและมีจำนวนของการแก้ปัญหา: ชื่อตัวแปรที่มีความเท่าเทียมกันอัลฟา, ดัชนี de Bruijn
แต่ดูเหมือนว่าจะมีวิธีอื่นที่ค่อนข้างชัดเจนซึ่งฉันไม่เคยเห็นมาก่อนเลย กล่าวคือในไวยากรณ์พื้นฐานเรามีเพียงหนึ่ง "ตัวแปร" คำพูดที่เขียนแล้วแยกเราให้ฟังก์ชั่นที่แผนที่แต่ละตัวแปรเครื่องผูกในที่มีขอบเขตมันโกหก ดังนั้นλระยะยาวเช่น
จะเขียนλและฟังก์ชั่นจะ map แรก∙แรกλและครั้งที่สอง∙ที่สองλ ดังนั้นมันเหมือนกับดัชนี de Bruijn เพียงแทนที่จะต้อง "นับλ s" เมื่อคุณกลับออกจากคำศัพท์เพื่อค้นหาสารยึดเกาะที่สอดคล้องกันคุณเพียงแค่ประเมินฟังก์ชั่น (หากแสดงสิ่งนี้เป็นโครงสร้างข้อมูลในการดำเนินการฉันจะคิดว่าการจัดเตรียมออบเจ็กต์คำศัพท์แต่ละตัวแปรด้วยตัวชี้ / การอ้างอิงอย่างง่ายไปยังออบเจ็กต์คำที่สอดคล้องกัน)
เห็นได้ชัดว่าสิ่งนี้ไม่เหมาะสมสำหรับการเขียนไวยากรณ์บนหน้าเว็บเพื่อให้มนุษย์อ่าน แต่แล้วก็ไม่มีดัชนี de Bruijn ฉันคิดว่ามันสมเหตุสมผลดีทางคณิตศาสตร์และโดยเฉพาะอย่างยิ่งมันทำให้การทดแทนการหลีกเลี่ยงการจับภาพเป็นเรื่องง่ายมาก: เพียงแค่วางในเทอมที่คุณใช้แทนและใช้ฟังก์ชันการรวมกัน มันเป็นความจริงที่ว่ามันไม่ได้มีความคิดเกี่ยวกับ "ตัวแปรอิสระ" แต่แล้ว (อีกครั้ง) ไม่ได้ทำดัชนีเดอบรูจน์จริง ๆ ; ในทั้งสองกรณีคำที่มีตัวแปรอิสระจะแสดงคำที่มีรายการ "ตัวยึด" บริบทอยู่ด้านหน้า
ฉันทำบางสิ่งบางอย่างหายไปและมีเหตุผลบางอย่างที่การแสดงนี้ไม่ทำงานหรือไม่ มีปัญหาที่ทำให้แย่กว่าคนอื่น ๆ ที่ไม่คุ้มค่าหรือไม่ (ปัญหาเดียวที่ฉันคิดได้ในตอนนี้คือชุดของข้อตกลง (พร้อมกับฟังก์ชั่นการผูก) ไม่ได้ถูกกำหนดแบบเหนี่ยวนำ