2013-04-03 3 views
5

यह add1 के रूप में इस तरह के एक आदिम भाषा का उपयोग किए बिना एक चर्च एक पूर्णांक प्रतिनिधित्व करने के लिए अंक कन्वर्ट करने के लिए संभव है?चर्च अंकों आदिम भाषा के बिना int करने के लिए परिवर्तित

सभी उदाहरण मैं उपयोग का सामना करना पड़ा int करने के लिए dechurch को एक आदिम

उदाहरण:

plus1 = lambda x: x + 1 
church2int = lambda n: n(plus1)(0) 

उदाहरण 2:

(define (church-numeral->int cn) 
    ((cn add1) 0)) 

मैं एक माइक्रो तुतलाना के साथ प्रयोग कर रहा हूँ इंटिप्टर (केवल जॉन मैककार्थी के 10 नियमों का उपयोग करके) और यह समझना चाहेंगे कि क्या इसे आदिम जोड़ने के बिना किया जा सकता है।

+1

मेरा मतलब है http://stackoverflow.com/questions/3482389/how-many-primitives-does-it-take-to-build-a-lisp-machine-ten-seven-or- पंज। मैं एक चर्च आम 7,10 का उपयोग कर अंक की एक पठनीय प्रतिनिधित्व करने के लिए वापस परिवर्तित करने के लिए नहीं देखा howt है, एक्स जैसे पुरातन "परमाणु, बोली, eq, कार, सीडीआर, विपक्ष, cond, लंबाडा, लेबल, लागू होते हैं।" अब, एक "आउटपुट" आदिम भी उपयोगी होना आवश्यक होगा। क्या यॉम्बिनेटर और आउटपुट के साथ कुछ किया जा सकता है? – Joe

उत्तर

1

सं int, आप इसे का वर्णन के रूप में, मूल्य की एक आदिम प्रकार, नहीं एक समारोह है। आप सब पर पुरातन बिना (add1 बिना, कैसे आप कभी भी 0 से 1 को पाने के लिए जा रहे हैं?) इस तरह के int रों में हेरफेर नहीं कर सकते।

लेकिन, आप निश्चित रूप से पुरातन का उपयोग किए बिना प्राकृतिक संख्या के दो विभिन्न चर्च-एन्कोडिंग के बीच में बदल सकते हैं, जब तक अपनी भाषा उन पुरातन बिना ट्यूरिंग-पूर्ण है।

2

पूर्णांक संख्यात्मक प्रकार लिस्पे प्राथमिक प्राथमिक प्रक्रियाओं की मैककार्थी की सूची का हिस्सा नहीं है - आपके पास केवल फ़ंक्शन उस स्तर पर हैं, कोई अन्य डेटा प्रकार मौजूद नहीं है। यही कारण है कि अगर हमें लिस्प की ऐसी सरल परिभाषा का सख्ती से पालन करना होता है तो पूर्णांक को कार्यों के रूप में प्रतिनिधित्व करने की आवश्यकता होगी (उदाहरण के लिए, चर्च अंकों का उपयोग करना)। तो जवाब कोई है। आप उस डेटा प्रकार में कनवर्ट नहीं कर सकते जो अभी तक मौजूद नहीं है।

अब हम भाषा में परमाणुओं (सूचना है कि भाषा को नया डेटा प्रकार जोड़ने 7-10 आदिम प्रक्रियाओं का उल्लेख परे चला जाता है) के रूप में पूर्णांक जोड़ने कि लगता है। और भी अधिक आसान बनाने के लिए, मान लीजिए कि हम सिर्फ एक संख्या है, संख्या शून्य जोड़ने - तो हम अभी भी add1 आपरेशन पूर्णांकों के बाकी के निर्माण के लिए, आवश्यकता होगी प्रति Peano axioms के रूप में जो प्राकृतिक के लिए उत्तराधिकारी आपरेशन के अस्तित्व की आवश्यकता होती है मौजूद संख्याएं। फिर, हम कम से कम एक परमाणु के रूप में संख्या शून्य और add1 समारोह बिना पूर्णांकों के लिए चर्च अंकों से परिवर्तित नहीं कर सकते।

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