2009-10-20 8 views
7

parenscript का उपयोग करते समय अगर मैं निष्पादितसभी लोअरकेस में parenscript फ़ंक्शन क्यों बदले गए हैं?

 
(parenscript:ps 
(slot-value ($ "#mytextarea") 'selectionStart)) 

यह जावास्क्रिप्ट का उत्पादन

 
$('#mytextarea').selectionstart; 

ध्यान दें कि selectionStart अब selectionstart है। यह Start पर अपरकेस एस खो गया! मैं उस अपरकेस एस को चारों ओर कैसे रखूं?

+2

डिफ़ॉल्ट रूप से, सामान्य लिस्प फॉर्म (जो माता-पिता इनपुट के रूप में लेते हैं) पाठक द्वारा केस-फ़ोल्ड (अपरकेस तक) होते हैं। 'चयन स्टार्ट' 'SELECTIONSTART' बन जाएगा, जो माता-पिता के अनुमान उत्पन्न होने पर संभवतया डाउनकेस करता है। – Pillsy

उत्तर

7

Parenscript स्वचालित रूप से नामकरण सम्मेलन केमलकेस करने के लिए (शब्द को अलग करने डैश) तुतलाना से परिवर्तित कर देंगे, तो:

"$('#mytextarea').selectionStart;" 
+1

यदि आपको अपने प्रतीक में प्रारंभिक पूंजी अक्षर की आवश्यकता है, तो आपको नाम को तारांकन के साथ उपसर्ग करना होगा। –

1

में

(parenscript:ps 
(slot-value ($ "#mytextarea") 'selection-start)) 

परिणाम के रूप में Pillsy टिप्पणी की, सभी प्रतीकों से ऊपरी मामलों रहे हैं डिफ़ॉल्ट जब वे लिस्प कंपाइलर द्वारा पढ़ा जाता है। हालांकि, इसे बंद करने का एक तरीका है। विवरण के लिए CLHS, 23.1.2 (Effect of Readtable Case on the Lisp Reader), और एक्सेसर readtable-case का विवरण देखें। उदाहरण के लिए, यदि आप "की विपरीत" मोड अपने लिस्प स्रोत फ़ाइल में निम्न डालकर (जो यकीनन केवल व्यावहारिक सेटिंग भी केस-संवेदी है कि है) सक्षम कर सकते हैं:

#.(setf (readtable-case *readtable*) :invert) 

दुर्भाग्य से, ParenScript प्रतीत नहीं होता कस्टम रीडटेबल-केस सेटिंग का अधिक उपयोग करने के लिए, भले ही यह (और, मेरी राय में, ऐसा) कर सके।

+0

आप कैसे कहेंगे कि माता-पिता रीडटेबल-केस का सबसे अच्छा उपयोग कर सकते हैं? अभिभावक संकलक को कोड के साथ एस-एक्सप्रेशन के रूप में कोड मिलता है, इसलिए यह नहीं जानता कि प्रतीक नाम कैसे पढ़े गए थे। अब एक संकलन-फ़ाइल फ़ंक्शन है जहां आप पाठक को कस्टमाइज़ कर सकते हैं, लेकिन यह सभी पीएस कोड के लिए काम नहीं करेगा । – vsedach

+0

@vsedach यह सच है। फिर भी, मेरी राय में यह स्पष्ट है कि मिश्रित केस प्रतीकों के साथ क्या करना है (बस उन्हें छोड़ दें), इसलिए केवल एक ही मुद्दा शेष है जो सभी अपरकेस और सभी-लोअरकेस प्रतीकों के बारे में क्या करना है। व्यक्तिगत रूप से, मैं या तो यह मानने का सुझाव दूंगा: डिफ़ॉल्ट रूप से INVERT या ऐसे सभी प्रतीकों (पीछे की ओर-संगतता के लिए) को नीचे-आवरण करना और इसे रीडटेबल-केस के रूप में सेटिंग बनाना। –

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