2012-10-28 8 views
7

क्या कोई मुझे योजना में car और cdr की विविधताओं के बारे में एक बुनियादी व्याख्या दे सकता है?कार, सीडीआर, सीएडीएआर, आदि का स्पष्टीकरण

यदि मैं सही हूं, car सूची में पहला आइटम लौटाएगा। cdr पहले तत्व को छोड़कर एक सूची लौटाएगा।

मैं इन के अन्य रूपों पर संदेह में हूँ, और अधिक विशेष cadar, caddr, cddr, आदि जैसी चीजों

मैं एक यादृच्छिक उदाहरण के रूप में इस राशि कहते हैं:

define X '(a b (c d e)) 

(car X) 
(cdr X) 
(cadr X) 
(cadar X) 

(car X) उत्पादन होगा a, (cdr X)(b (c d e)), cadr उत्पादित करेगा b। लेकिन मुझे नहीं पता कि car/cdrcadar की किसी भी अन्य विविधता का अनुमान कैसे लगाया जाए।

उत्तर

15

आप उनके नाम को पार्स द्वारा इन कार्यों के अर्थ अनुमान लगा सकते हैं:

पहले अक्षर के बीच

('सी') और पिछले ('आर'), एक 'एक' 'की कार "का अर्थ है और एक 'डी' का मतलब है "का सीडीआर"।

तो:

  • cadr "सीडीआर की कार",
  • cddr सीडीआर की सीडीआर है
  • cadar "कार की सीडीआर की कार" है इस प्रकार है, (पैरामीटर,
  • आदि
+0

यह वास्तव में मदद की! मैंने कभी सी और आर के बीच में देखने के बारे में सोचा नहीं, और फिर या तो एक या डी की तलाश में। यह कम से कम मेरे लिए सबसे ज्यादा समझ में आता है। –

4

सबसे आसान तरीका है एक योजना में दर्ज है सूची) की एक सूची हो गया है दुभाषिया:

(car X) -> a 
(cdr X) -> (b (c d e)) 
(cadr X) -> (car (cdr X))  -> (car '(b (c d e))) -> b 
(cadar X) -> (car (cdr (car X))) -> (car (cdr 'a))  -> error 

जब आप एक से अधिक a या d है, जैसा कि आप cadr उदाहरण से देख सकते हैं, आप इसे पीछे की ओर पढ़ सकते हैं। पहले तर्क के cdr (डी) लें, फिर परिणाम से car (ए) लें, और तब तक जब तक आप पहले तक नहीं पहुंच जाते।

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