LISP में एक चर के लिए मान निर्दिष्ट करने के लिए setf
फ़ंक्शन है। अब मैं फ़ंक्शन के नाम के बारे में सोच रहा हूं: set
भाग स्पष्ट है, लेकिन f
प्रत्यय के लिए क्या खड़ा है?सेटफ में एफ के लिए क्या खड़ा है?
उत्तर
एफ का वास्तविक अर्थ अक्सर भूल जाता है। कुछ सूत्रों के अनुसार, च प्रत्यय खड़े कर सकता है के लिए:
- फील्ड (उदाहरण के लिए देखें इस answer)
- फार्म
हालांकि (के रूप में विभिन्न शिक्षण सामग्री और मैनुअल में देखा), गेब्रियल के अनुसार और स्टील का The Evolution of Lisp, एसईटीएफ पीटर Deutsch के A Lisp Machine with Very Compact Programs (1 9 73 में प्रकाशित) से आता है और एफ फ़ंक्शन के लिए खड़ा है।
इस पत्र में, पीटर Deutsch लिखा है:
सेट समारोह बढ़ाया है ताकि ताकि यदि पहला तर्क एक सूची
(fn argl ... argn)
के बजाय एक चर रहा है, समारोह fn "स्टोर" मोड में कहा जाता है तर्कargl ... argn
और newvalue (एसईटी का दूसरा तर्क) के साथ। एसईटीक्यू को भी स्पष्ट तरीके से बढ़ाया गया है, लेकिन यह विशेष रूप से उपयोगी नहीं है। एक और उपयोगी कार्य(SETFQ (fn argl ... argn) newvalue)
है जो उद्धरणफ़ंक्शन नाम और अन्य सभी का मूल्यांकन करता है। यह RPLACA को उदाहरण के लिए(LAMBDA (X Y) (SETFQ (CAR X) Y))
के रूप में परिभाषित करने की अनुमति देता है।यह नाम लिस्प मशीन लिस्प में SETF को संक्षिप्त किया गया था:
(जोर मेरा)
गेब्रियल और स्टील यह कैसे SETF बन समझाने।
इसे इंगित करने के लिए धन्यवाद, अब मुझे पता है कि किस शब्द को देखना है :-)! –
@GoloRoden 2 विरोधाभासी उत्तर हैं, आप कैसे जानते हैं कि यह सही है? – henginy
मैं * यह नहीं जानता कि यह सही है, लेकिन मैं दोनों शर्तों के लिए googled और एक और (काफी उत्थान) [उत्तर] (http://stackoverflow.com/a/869693/1333873) पाया जो सुझाव देता है कि यह 'फ़ील्ड' है , 'फॉर्म' नहीं। इसके अलावा, यह उत्तर अधिक उपयोगी है क्योंकि यह भी बताता है कि 'q' क्या है। –
- 1. एफडब्ल्यूओआर में एफ क्या खड़ा है?
- 2. बंप संस्करण के लिए क्या खड़ा है?
- 3. स्ट्रैब्रिक के लिए क्या खड़ा है?
- 4. *** NO_CI *** के लिए क्या खड़ा है?
- 5. 'कोर' के लिए क्या खड़ा है?
- 6. eabihf एचएफ के लिए खड़ा क्या है?
- 7. एससीएम के लिए क्या खड़ा है?
- 8. 'एचएल` के लिए क्या खड़ा है?
- 9. फ़ुटपुट (_ ("")) अंडरस्कोर के लिए क्या खड़ा है?
- 10. एक्सएपी के लिए क्या खड़ा है?
- 11. भोजन के लिए क्या खड़ा है?
- 12. पीएसआर -0 के लिए क्या खड़ा है?
- 13. एमआर संस्करण के लिए क्या खड़ा है?
- 14. uint32_t के लिए क्या खड़ा है?
- 15. क्या क्यूए सर्वर के लिए खड़ा है?
- 16. स्प्रिंटफ के लिए क्या खड़ा है?
- 17. बैश में '-' क्या खड़ा है?
- 18. दिनांक अंतराल प्रारूप में 'पी' के लिए क्या खड़ा है?
- 19. Symfony2 में 'Acme' के लिए क्या खड़ा है?
- 20. विंडोज़ में सीबीटी हुक ... "सीबीटी" के लिए क्या खड़ा है?
- 21. जावा-डी में डी के लिए क्या खड़ा है?
- 22. सी में पोस्टफिक्स "_t" के लिए क्या खड़ा है?
- 23. glgetShaderiv() में 'iv' के लिए क्या खड़ा है?
- 24. एंड्रॉइड एसडीके में 'आईसीयू' के लिए क्या खड़ा है?
- 25. टी में tapply के लिए क्या खड़ा है?
- 26. dispatch_queue_t में "टी" के लिए क्या खड़ा है?
- 27. जावा मेमोरी प्रबंधन में, 'पीएस' के लिए क्या खड़ा है?
- 28. stronv.Itoa में "itoa" के लिए क्या खड़ा है?
- 29. क्लोजर स्रोत कोड में, आरटी के लिए क्या खड़ा है?
- 30. एफबी क्या करता है: नेमस्पेस के लिए खड़ा है?
+1 यह एक दिलचस्प सवाल है। यह जरूरी नहीं है कि एक प्रोग्रामिंग प्रश्न, प्रति से, (क्योंकि यह ** ** सेटफ का उपयोग करने के बारे में नहीं है), लेकिन यह एक स्पष्ट उत्तर के साथ नहीं है, और नामकरण सम्मेलनों और इतिहास को समझने में अक्सर भाषा के प्रोग्रामर के मानसिक मॉडल की मदद मिल सकती है । (संयोग से, 'setq 'में' q' आसान है। पुराने लिस्पस में जहां प्रतीक का' प्रतीक-मान 'का उपयोग करना अधिक आम था,' '(set' foo ...) 'को संक्षिप्त करना अच्छा था (setq foo ...) '(इसलिए q 'उद्धरण' के लिए है)।) –
इस अच्छी टिप्पणी के लिए धन्यवाद :-))। मेरे लिए एक एलआईएसपी शुरुआती के रूप में कुछ नाम समझने में कठिनाई होती है, एक और उदाहरण 'शाम' और 'oddp' है: मुझे आश्चर्य है कि' पी 'क्या है, और यह निश्चित रूप से कार्यों को याद रखने में मदद करता है यदि आप वास्तव में उनके नाम समझते हैं (और इसलिए उनका अर्थ)। –
पी "predicate" के लिए खड़ा है –