2012-02-26 6 views
9

"प्रकार और प्रोग्रामिंग भाषाएं" में, खंड 6.1.2 वे नामकरण संदर्भ के बारे में बात करते हैं जो लैम्ब्डा अभिव्यक्तियों में मुफ्त चरों के लिए उपयोग किया जाता है। उदाहरण प्रदान की गई योजना योजना का उपयोग करके, λx.xb और λx.xx दोनों में उनके डी ब्रुज़न का प्रतिनिधित्व λ.00 होगा जब वे स्पष्ट रूप से अलग-अलग शब्द हों। यह कैसे काम करता है?मुक्त चर के डी Bruijn सूचकांक खोजने के लिए नामकरण संदर्भ का उपयोग कैसे करें?

+0

आपको क्या लगता है कि पहले व्यक्ति का प्रतिनिधित्व 'λ.00' होगा। मुझे नहीं लगता कि पहले से ही प्रतिनिधित्व किया जा सकता है क्योंकि 'बी' कहीं भी बाध्य नहीं है। – sepp2k

+0

मैंने जो खंड का उल्लेख किया है, वे इस बारे में बात करते हैं कि _नामिंग संदर्भ_ का उपयोग करके निःशुल्क चर का प्रतिनिधित्व कैसे किया जा सकता है। – sanjoyd

+0

आह, अब मैं देखता हूं। मैं जल्द ही एक जवाब लिखूंगा। – sepp2k

उत्तर

13

जैसा कि आपने बताया है कि पुस्तक नामकरण संदर्भ का उपयोग करती है जो n0 से n-1 तक की संख्याओं के लिए मुफ्त चर का नक्शा बनाती है। हालांकि यदि आप पुस्तक में उदाहरणों पर बारीकी से देखते हैं, तो आप देखेंगे कि यह उन संख्याओं का उपयोग सीधे चर का प्रतिनिधित्व करने के लिए नहीं करता है। उदाहरण के लिए यह λ. 4 0 रूप λw. y w का प्रतिनिधित्व करता है, भले ही y के लिए मानचित्रण 3, 4.

है नहीं यहाँ क्या हो रहा है कि वह संख्या के चर के घोंसले गहराई जोड़ता है। अर्थात। यदि एक फ्री वैरिएबल vd लैम्बडास में घोंसला है, तो यह Γ(v) पर सूचकांक Γ(v)+d प्राप्त करता है।

अपने उदाहरण में

तो संदर्भ Γ {b -> 0}λx.xb का उपयोग कर λ. 0 1, नहीं λ. 0 0 के रूप में प्रतिनिधित्व किया जाएगा। इस प्रकार कोई अस्पष्टता नहीं है।

+0

मैंने लैम्ब्डा कैलकुस के कार्यकलापों को सीखने के प्रयास में एक सरल सूचकांक आधारित विधि के लिए एक [वेब आधारित दुभाषिया] (http://pure-fn.appspot.com/about) बनाया है। मैं इस पर आपकी प्रतिक्रिया की सराहना करता हूं। – dansalmo

संबंधित मुद्दे