quote - Lisp difference between (cons 'a (cons 'b 'c)) and (cons 'a '(b.c)) -
इसमें क्या अंतर है:
(cons 'a (cons' b 'c) ) ;; (ए बी सी)
और
(विपक्ष 'ए' (बी सी)) ;; (ए बीसी)
मुझे निम्नलिखित सूची ((a.b)) बनाने की आवश्यकता है। C) cons का उपयोग कर रहा हूं इसलिए मैं यह समझने की कोशिश कर रहा हूं कि "।" का प्रतिनिधित्व करता है।
LE : मेरे पास निम्न है (विपक्ष ('a' b) 'c)
लेकिन यह उत्पन्न करता है ((ए
और नहीं ((एबी)। सी)
(अतिरिक्त स्थान नोट करें)
रिक्त स्थान सूची टोकन अलग करने के लिए उपयोग किया जाता है एबी
एक एकल टोकन है। (ए बी)
एक तत्व के साथ एक सूची है (ए बी)
ए
के साथ एक कार और बी
सीडीआर के रूप में एक परावर्तन सेल है।
एक विपक्ष सेल है "चीजों" (वस्तुओं) की एक जोड़ी आपके मामले में, ये चीजें प्रतीक हैं, और उन्हें A
, B
, आदि नामित किया गया है। ऐसे सेल का मुद्रित प्रतिनिधित्व है (ए। बी)
, उदाहरण के लिए। इसे "डॉट नोटेशन" कहा जाता है पहला तत्व "कार" कहा जाता है, दूसरा "सीडीआर"।
फ़ंक्शन cons
ऐसे सेल बनाता है। (विपक्ष 'ए' बी)
इस प्रकार सेल (ए बी)
उत्पन्न करता है। ध्यान दें कि नामों को हमेशा आंतरिक रूप से बढ़ाया जाता है ।
यह संभव है कि आपका शिक्षक क्या चाहता है, इसलिए ((ए। बी)। C)
सही आउटपुट, और आपका कोड सही उत्तर यह एक ऐसा सेल है जहां कार किसी अन्य कक्ष को इंगित करती है, और सीडीआर में C
होता है वह अन्य कक्ष एक ऐसा कक्ष है जहां कार में ए
और cdr B
।
वैसे, एक सूची ऐसी विपक्षी कोशिकाओं की एक रैखिक श्रृंखला होती है, जैसे कि कार हमेशा एक मूल्य और सीडीआर अंकों को शेष सूची में रखती है। आखिरी सीडीआर अंक कहीं नहीं है (जिसे लिस्प में शून्य कहा जाता है) डॉट नोटेशन में, एक सूची उदाहरण के लिए है (ए (बी। (सी। एनआईएल)))
चूंकि सूचियां महत्वपूर्ण हैं, इसलिए उन्हें इस तरह से कम लिखा जा सकता है: (A B C)
। यदि अंतिम सीडीआर में शून्य के बजाय एक मान है, तो इसे डॉट नोटेशन में दिखाया गया है, उदा। (ए (बी। (सी। डी))))
को (ए बी सी डी) के रूप में लिखा जा सकता है
।
Comments
Post a Comment