मैंने हमेशा सोचा है कि क्यों डगलस क्रॉकफोर्ड जावास्क्रिप्ट को योजना में तुलना करता रहता है। हां जेएस को अपने डिजाइनर द्वारा योजना बनाने का इरादा था; लेकिन प्रथम श्रेणी के फ़ंक्शन समर्थन और लेक्सिकल स्कोपिंग (टूटा हुआ) के अलावा, जेएस के पास योजना के साथ आम विशेषताएं क्या हैं जो इसे "सी कपड़ों में लिस्प" बनाती है?प्रथम श्रेणी के कार्यों और लेक्सिकल स्कोपिंग के अलावा, योजना कार्यान्वयन के साथ जावास्क्रिप्ट साझा करता है?
उत्तर
एक और बात जो मन में आता व्यापक भाषा में एक भी हर जगह का डेटा संरचना के उपयोग और पुस्तकालयों है:, योजना के मामले में विपक्ष सूचियोंके मामले में नक्शे (बुलाया वस्तुओं) ECMAScript।
तब यह तथ्य नहीं है कि ईसीएमएस्क्रिप्ट में प्रथम श्रेणी की प्रक्रियाएं हैं, लेकिन यह प्रक्रिया केवल अमूर्त तंत्र है। (या अधिक सटीक कैप्सूलीकरण तंत्र।)
योजना में '(चलो) 'के बारे में क्या? खैर मुझे लगता है कि ईएस 5 भी उसे प्राप्त करेगा। – Pointy
@ पॉइंटी: आपका मतलब ईएस 6 है? हां, AFAIK, 'चलो' पहले ही ईएस-सद्भाव में है। असल में, 'var' को त्याग दिया जा रहा है, और इसे' चलो '(ठीक से व्याख्यात्मक रूप से स्कॉप्ड) और' const' 'के साथ प्रतिस्थापित किया गया है (रिबाउंड नहीं किया जा सकता है)। –
@ पॉइंट, 'चलो' सिर्फ एक वाक्यविन्यास चीनी है। आप जेएस में ऐसा कर सकते हैं: '(फ़ंक्शन (x) {...}) (...) 'के बजाय' (चलो ((x ...)) ...) '। –
मेरे सिर के ऊपर बंद, प्लस एक नज़र Wikipedia पर:
- ब्लॉक संरचना
- क्रम निरीक्षण
- Eval
- नहीं (स्पष्ट) संकलन चरण
- छोटे लेकिन समृद्ध stdlib
- एस प्रक्रियाओं और चर के लिए नामित नामस्थान
एक सूची जो इस सूची में उच्च होनी चाहिए वह एक आरईपीएल है। एक तकनीकी की तरह लगता है, खासकर जब ये प्रतिकृतियां आमतौर पर कुछ "डेवलपर टूल्स" चीज़ के पीछे छिपी होती हैं, लेकिन इसका भाषा पर बहुत बड़ा प्रभाव पड़ता है। (उदाहरण के लिए, एक वास्तविक eval
होने पर प्राकृतिक है, जब यह एक प्रतिलिपि है, आदि) यह मूल रूप से कोड के गतिशील मूल्यांकन को प्रथम श्रेणी की स्थिति रखता है, जो जेएस की तरह कुछ के लिए बेहद उपयोगी है, और शायद इसकी सफलता के लिए इसकी अधिक सफलता में योगदान दिया है प्रथम श्रेणी के कार्यों (जो वास्तव में कुछ साल पहले तक ही उपयोग नहीं किया गया था)।
वाह, मैंने कमरे में हाथी को याद किया। यह स्पष्ट रूप से अन्य सुविधाओं से संबंधित है (रनटाइम निरीक्षण, eval, कोई स्पष्ट संकलन), लेकिन तर्कसंगत रूप से अधिक महत्वपूर्ण है कि उनमें से कोई भी व्यक्तिगत रूप से। – Ken
खैर, जावास्क्रिप्ट में homoiconicity है, और यह लिस्प बोलीभाषा के मुख्य गुणों में से एक है।
क्या इस प्रश्न का वास्तव में एक सार्थक, निश्चित उत्तर है? – Pointy
@ पॉइंटी: हाँ प्रथम श्रेणी के फ़ंक्शन और लेक्सिकल स्कॉइंग के बगल में कोई भी सुविधा एक सार्थक और निश्चित उत्तर होगा। किसी के बारे में पता है? – unj2
यदि आप सोच रहे हैं कि डौग कुछ क्यों करता है, तो डॉग को ईमेल क्यों न भेजें? – Ken