2011-09-16 12 views
6

मैं एक नई योजना/रैकेट छात्र हूं, इसलिए किसी भी ब्लैटेंट सिंटैक्स त्रुटियों को क्षमा करें।योजना: अजीब तरह से लौटने वाले तीन बिंदीदार तत्वों की सूची (एक इंफिक्स ऑपरेटर की तरह?)

यह आज कक्षा में आया है कि इस योजना के सूची '(a, b, c) अमान्य होना चाहिए, लेकिन जब हम यह भाग गया, यह लौटे:

>'(a . b . c) 
(b a c) 

कौन सा कोई मतलब नहीं है। अफैक, दुभाषिया को कार 'ए और सीडीआर' बी के साथ एक विपक्ष सेल बनाना चाहिए, और 'सी अमान्य होना चाहिए। उस ने कहा, दुभाषिया यहाँ वास्तव में कुछ अजीब कर रहा है। यह # लांग योजना, # लांग रैकेट, और अन्य के साथ काम करता है। हम दुभाषिया के रूप में DrRacket का उपयोग कर रहे हैं।

दिलचस्प बात यह है

>'(a . b . c . d) 

एक अपवाद फेंकता है और मर जाता है।

मैं बहुत उत्सुक हूं और इसे समझने में सक्षम होना पसंद करूंगा क्योंकि मैं भाषा में नया हूं। Google बहुत ही अनुपयोगी था (संभवतः खोज शब्द संदिग्ध हैं) धन्यवाद!

संपादित करें: ऐसा इसलिए हो सकता है क्योंकि '(a . b . c) बी को इंफिक्स ऑपरेटर के रूप में व्याख्या किया गया है। उदाहरण के लिए: >(4 . + . 6) रिटर्न 10. शायद दुभाषिया बी ऑपरेटर की तरह बी का उपयोग कर रहा है? i.e. (b a c)(+ 4 6), इंफिक्स-वार।

Expermentation का कहना है:

>(define b +) 
>(define a 4) 
>(define c 6) 
>(a . b . c) 
10 

तो मैं इस समस्या का हल लगता है, लेकिन मैं अभी भी पूरी तरह के उपयोग समझ में नहीं आता। "" इस मामले में ऑपरेटर। मुझे लगता है कि हमने इसे हल कर लिया है, लेकिन किसी और अंतर्दृष्टि की सराहना की जाएगी!

+0

ऑपरेटर के दोनों ओर डॉट्स मुझे फोरट्रान की याद दिलाता है: 1। एलटी। 3 – JasonFruit

उत्तर

8

संक्षिप्त उत्तर: आपको यह मिला। डॉट्स के इस रैकेट-विशिष्ट उपयोग के बारे में अधिक जानकारी के लिए, रैकेट दस्तावेज़ों में infix के लिए दस्तावेज़ देखें।

4

यह रैकेट के पाठक की एक विशेष विशेषता है। (जॉन का जवाब देखें।)

अन्य कार्यान्वयन के लिए, आप इन्फिक्स अभिव्यक्तियों को पढ़ने में सक्षम होने के लिए readable S-expressions पाठक का उपयोग कर सकते हैं। यह घुंघराले ब्रेसिज़ का उपयोग करता है। उदाहरण के लिए, {3 + 4} को (+ 3 4) के रूप में पढ़ा जाता है। और भी विशेष (रैकेट के इंफिक्स रीडर से), आप {3 + 4 + 5} या {3 + 4 + 5 + 6} का उपयोग कर सकते हैं; वे क्रमश: (+ 3 4 5) और (+ 3 4 5 6) के रूप में पढ़ेंगे।

+1

रैकेट के लिए पठनीय एस-एक्सप के कार्यान्वयन को भी देखें: http://planet.racket-lang.org/display.ss?package=sweet.plt&owner=asumu –