क्या LISP आज भी दुनिया में उपयोगी है? किस संस्करण का सबसे अधिक उपयोग किया जाता है?


117

मैं समय के नियमित अंतराल में खुद को एक नई प्रोग्रामिंग भाषा सिखाने की कोशिश करता हूं। हाल ही में, मैंने पढ़ा है कि लिस्प और इसकी बोलियाँ C / C ++ जैसी भाषाओं से स्पेक्ट्रम के पूर्ण विपरीत छोर पर हैं, जिसने मुझे इसके बारे में अधिक जानने के लिए उत्सुक बनाया। हालांकि, दो चीजें मेरे लिए अस्पष्ट हैं, और मैं उन पर मार्गदर्शन की तलाश कर रहा हूं:

  1. क्या LISP का आज भी दुनिया में उपयोग किया जाता है, या क्या यह FORTRAN / COBOL जैसी विरासत की भाषा है? मेरा मतलब है, मौजूदा कोड को बनाए रखने के अलावा, क्या इसका उपयोग नई परियोजनाओं पर किया जाता है?

  2. सबसे व्यापक रूप से बोली जाने वाली बोली कौन सी है? मैं 2 सबसे प्रचलित बोलियों के रूप में स्कीम और कॉमन लिस्प में आया था, और आपकी राय चाहता था कि जो सीखने के लिए सबसे पसंदीदा / उपयोगी है - और यदि आप एक रैंक शुरुआत के लिए किसी भी संसाधन का सुझाव दे सकते हैं, तो वह बहुत आभारी होगा।

जबकि मैं उस भाषा को सीखने के लिए उत्सुक हूं जो मूल रूप से उन प्रक्रियात्मक भाषाओं से अलग है जिन्हें मैं इस्तेमाल कर रहा हूं, मैं किसी चीज में अनुचित प्रयास नहीं करना चाहता हूं अगर इसकी पूरी तरह से अप्रचलित हो - मैं अभी भी इसे सीखूंगा यदि यह पेशेवर "मृत" था। लेकिन केवल एक शैक्षणिक दृष्टिकोण के साथ ...


10
मुझे इस सवाल में बहुत दिलचस्पी है। हर अब और फिर जब मेरे पास समय होता है, तो मैं लिस्प सीखने का एक कदम उठाने का फैसला करता हूं। और हर बार जब आप यहां पूछ रहे हैं तो उसी तरह के सवालों और अनिश्चितताओं से घबराए हुए हैं। लिस्प का कौन सा संस्करण मुझे सीखना चाहिए? क्या कोई (पॉल ग्राहम के अलावा) वास्तव में लिस्प का उपयोग करता है? क्या मुझे लिस्प, या हास्केल जैसी नई कार्यात्मक प्रोग्रामिंग भाषाओं में से एक सीखना चाहिए? लिस्प ओवर स्कीम आदि के क्या लाभ हैं, आदि
Channel72

3
एमआईटी की योजना / लिस्प कोर्स: ocw.mit.edu/courses/electrical-engineering-and-computer-science/…
जो इंटरनेट

प्रैक्टिकल कॉमन लिस्प: गिगामोनकीज़ .बुक
जो इंटरनेट

"फिर भी"? (मैं मजाक करता हूं!)
झटका

मैं सिर्फ SO, stackoverflow.com/q/1614724/212942
TCSGrad

जवाबों:


59

मुझे योजना पसंद है, अगर आप जेवीएम के साथ काम करना चाहते हैं, तो आपको क्लोजर की जांच करनी चाहिए, जो कि एक लिस्प है जिसे जेवीएम में काम करने के लिए डिज़ाइन किया गया है। और हां लिस्प अभी भी सीखने के लायक है कि इस तरह के एक न्यूनतम डिजाइन कितना शक्तिशाली हो सकता है! लिस्प का निर्माण करने वाले लोगों को कुछ चीजें वास्तव में सही लगीं। यह आश्चर्यजनक है कि आधुनिक भाषाओं की कितनी नई नई विशेषताएं 1960 में आईं!

एक एम्बेड की गई योजना के लिए प्रयास करें: http://www.gnu.org/s/guile/


क्या कोई बोली है जो C / C ++ के साथ अच्छी तरह से काम करती है, क्योंकि मैं मुख्य रूप से C ++ आदमी हूं? क्या आप एक रैंक नौसिखिए के लिए कुछ संसाधनों का भी उल्लेख कर सकते हैं, जो कि बोली सीखना शुरू कर सकते हैं?
TCSGrad

10
स्कीम सीखने के लिए सबसे अच्छी किताबें हैं "द लिटिल स्कीमर" और "एसआईसीपी" mitpress.mit.edu/sicp । ऐसी कई योजनाएं कार्यान्वित की जाती हैं जिन्हें c / c ++ के अंदर एम्बेड किया जा सकता है, लेकिन मैं वास्तव में नहीं जानता कि इन दिनों कौन से अच्छे हैं इसलिए आपको कुछ गोलगप्पे खाने पड़ सकते हैं।
ज़ाचरी के

1
मुझे यह बताना चाहिए कि यह योजना बहुत सरल है! आप 2 घंटे में 90% भाषा सीख लेंगे। बेशक इसका मतलब यह नहीं है कि आपको इसमें महारत हासिल होगी, बस आपको पता होगा कि वाक्य रचना कैसे काम करती है।
ज़ाचरी के

5
@ shan23 योजना शिक्षण के लिए डिज़ाइन की गई थी। यह बिना किसी संदेह के एक नए व्यक्ति को सिखाने के लिए इस्तेमाल किया जा सकता है कि कैसे प्रोग्राम करना है इसलिए मुझे कोई संदेह नहीं है कि आपको इसे सीखने में कोई समस्या नहीं होगी। यदि आप C या C ++ एकीकरण चाहते हैं, तो Guile ( en.wikipedia.org/wiki/GNU_Guile ) को देखें।
विटर पाय

1
Kent Dybvig की योजना प्रोग्रामिंग भाषा पुस्तक शायद इतनी प्रसिद्ध नहीं है, लेकिन एक बहुत अच्छी पुस्तक है। स्कीम.com/tspl4 यदि आप Emacs का उपयोग करते हैं, तो कुछ लिस्प सीखना आसान है।
ब्लिसप्र

68

प्रश्न 2 के उत्तर में, "सबसे अधिक व्यापक रूप से बोली जाने वाली बोली":

निर्भर करता है कि आप कैसे व्याख्या करते हैं "सबसे व्यापक रूप से उपयोग किया जाता है।" यहाँ कुछ चयनित बोलियों में से प्रत्येक का उपयोग करने पर कम सीमा के लिए कुछ नैपकिन गणित हैं।

अधिकांश कच्चा कोड लिखा गया

  • संभवतः शैक्षिक अनुप्रयोगों के कारण योजना (सभी बोलियाँ)
    • 270 स्कूलों ... चलो 50 छात्रों / वर्ष, कोड की 500 लाइनें / छात्र, 10 साल चल रहे हैं। नैपकिन गणित पर आधारित 1,000,000+ लाइनें
    • रैकेट की 500,000 पंक्तियाँ रैकेट में ही और इसके उपकरण।
  • संभवतः AI और पूरे खुले स्रोत कोड और उत्पादन कोड (उत्पादन कोड देखें) के कारण आम लिस्प ।
  • संभवतः Emacs लिस्प के कारण ...
    • Emacs ही: 1,000,000 से अधिक लाइनें
    • Emacs की राशि तुतलाना सार्वजनिक रूप से लिखा - 237 मॉड्यूल, के बारे में 200 लाइनों / मॉड्यूल है 40,000+ सिर्फ EmacsWiki पर लाइनों, शायद ज्यादा ELPA में अधिक
    • Emacs Lisp, .emacs फ़ाइलों आदि में लिखे गए प्लस अनुप्रयोग
  • Clojure
    • अनुमान लगाना कठिन। अधिकतर छोटे डॉटकॉम। बहुत कुछ हो सकता है।

विजेता: स्कीम या कॉमन लिस्प। बहुत सारे अज्ञात।

अधिकांश 'प्रोडक्शन' कोड

विजेता: मैं आम लिस्प का अनुमान लगा रहा हूं । मुझे लगता है कि हम कॉमन लिस्प और क्लोज़र के उपयोग के आधार पर प्रश्न 1 के लिए "हां" का जवाब दे सकते हैं।

अधिकांश अंतिम उपयोगकर्ता

  • आम लिस्प
    • आईटीए सॉफ्टवेयर ग्राहक, जिनमें ऑर्बिट्ज़, बिंग ट्रैवल और कायक.कॉम शामिल हैं - शायद लाखों।
  • Clojure
    • सिटीग्रुप (कोई विवरण नहीं), अकामाई (कोई विवरण नहीं), simple.com, कई अन्य। शायद लाखों।
  • योजना
    • सीएस छात्रों, शोधकर्ताओं और शौकियों। कम से कम एक bazillion।
    • अनचाहे श्रृंखला - 5 मिलियन से अधिक
  • एमएसीएस लिस्प - ज्यादातर प्रोग्रामर, ज्यादातर यूनिक्स प्लेटफार्मों पर। लाख हो सकता है।

विजेता: स्कीम में सबसे कम बाउंड यहाँ है, क्योंकि अनरेटेड पर बिक्री संख्याएँ हैं, लेकिन यह काफी बहस योग्य है।

निष्कर्ष

अंत में, मुझे लगता है कि बड़े सेब।


4
छोटे संतरे नहीं? या purpreen नींबू?
वैटाइन

वास्तव में स्कीम - गुप्त रूप से रैकेट स्कीम - अप-टू-डेट लिस्प बोली लगती है। एक पेशेवर ग्रेड उपकरण और पुस्तकालय।
बिकल लेम

@ बिकल मेरी इच्छा है कि ओपनगेट समर्थन इतना दिनांकित नहीं था, लेकिन फिर प्रत्यक्ष मोड मेरे रैकेट कोड का सबसे बड़ा दोष नहीं है ...
जेसी मिलिकन

पता नहीं था कि ऑर्बिट्ज़ ने सीएल का इस्तेमाल किया था ... मुझे पता है कि मेरी अगली नौकरी की तलाश कहाँ है: डी
रिग

2
रैकेट में 100k से अधिक LOC लिखे गए हैं। रैकेट मानक पुस्तकालय / IDE / उपकरण 500k से अधिक हैं, साथ ही यह SET, बोइंग और शरारती डॉग जैसी कंपनियों में उपयोग में है।
सैम टोबिन-होचस्टाट

43

क्या एलआईएसपी का उपयोग आज भी दुनिया में किया जाता है, या यह एक विरासत भाषा है

हां, यह है, लेकिन आपको यह जानना होगा कि कहां देखना है। जो लोग LISP का उपयोग करते हैं, वे इसके बारे में बहुत जोर से चिल्लाने की प्रवृत्ति नहीं रखते हैं, लेकिन पिछले 20 वर्षों में इसका उपयोग करने वाले कुछ हाई-प्रोफाइल स्टार्टअप के उदाहरण हैं। यह यूरोप में छोटी कंपनियों के साथ भी बहुत लोकप्रिय है।

सबसे व्यापक रूप से बोली जाने वाली बोली कौन सी है?

यह एक वैध प्रश्न है, लेकिन इसका उत्तर देना आसान नहीं है। यह जवाब देने के लिए विशेष रूप से उपयोगी नहीं भी हो सकता है: कई कार्यान्वयनों पर एक विशिष्ट ध्यान केंद्रित किया जाता है, इसलिए सबसे अच्छा चुना जाता है यदि वे आपकी विशेष समस्या को फिट करते हैं बजाय इसके कि व्यापक रूप से इसका उपयोग कैसे किया जाए। इसके बजाय, मैं आपको अपने विकल्पों के बारे में थोड़ा बताऊंगा और आप अपने लिए निर्णय ले सकते हैं।

LISP भाषाओं का एक परिवार है और उन भाषाओं में से प्रत्येक में बोलियों और कार्यान्वयन का एक परिवार है। मोटे तौर पर बोलियाँ दो शिविरों "LISP" और "स्कीम्स" में आती हैं।

LISP: अपेक्षाकृत हाल तक, आम LISP राजा था। यह सभी असमान एलआईएसपी को एकजुट करने का एक प्रयास था और बिना निर्दोष हुए, एलआईएसपी का "सी ++" था। यह कहना है, यह एक बड़ी भाषा थी। इसमें सब कुछ था। पिछले कुछ वर्षों में, क्लोजर दिखाई दिया है। क्लोजर एक एलआईएसपी है जो जावा वर्चुअल मशीन पर चलता है और एक कार्यात्मक प्रोग्रामिंग दर्शन में खुद को जड़ देने की कोशिश करता है। परंपरागत रूप से, अन्य LISPs कड़ाई से बहु प्रतिमान रहे हैं। क्लोजर दिलचस्प है क्योंकि यह LISP और JVM दोनों के सबसे अच्छे और सबसे खराब दोनों तरह से मिलता है। अभी भी जावा-आधारित भाषाओं की बहुत अधिक संख्या है और वे वाक्यविन्यास के साथ काफी स्वतंत्र और आसान हैं, ताकि विभिन्न चीजों के लिए बहुत सारे नॉब्स और बटन हैं, लेकिन उन्हें वास्तव में कुछ मिल गया हैडेटाटाइप्स के आसपास दिलचस्प विचार, विशेष रूप से कुछ व्यावहारिक तरीके जो वे कार्यात्मक प्रोग्रामिंग से विचारों को लागू करने के लिए आए हैं।

योजनाएँ: योजनाएँ LISPs का एक सख्त उपसमुच्चय हैं। स्कील का आविष्कार स्टील और सुस्मान द्वारा किया गया था और प्रारंभिक जीवन में एमआईटी कम्प्यूटिंग 101 ल्यूरियर कोर्स में इस्तेमाल होने के लिए उल्लेखनीय था। योजना को "संशोधित ^ n रिपोर्ट पर एल्गोरिथम भाषा योजना (RnRS)" में परिभाषित किया गया है। हाँ: वे वहाँ एक गणित मजाक है योजना एक तरह से मानकीकृत भाषा है जो अन्य LISPs नहीं हैं। यह कार्यान्वयन के बीच पोर्टेबिलिटी के साथ बहुत मदद करता है, लेकिन यह एक चांदी की गोली नहीं है। मानकीकरण के प्रयासों को परंपराओं में रूढ़िवादी और नवाचारों के रूप में विकसित किया गया है, विशेष रूप से मॉड्यूल जैसी चीजों के बारे में, असमान होने की प्रवृत्ति है। SRFIs (स्कीम रिक्वेस्ट फ़ॉर इंप्लीमेंटेशन) की एक श्रृंखला भी है जो IETF की RFC प्रक्रिया के समान है। लोग जरूरत के अनुसार छोटी चीजों का मानकीकरण करने के लिए इसका उपयोग करते हैं।

योजनाएं LISPs से भिन्न होती हैं कि उनके पास कठिन आवश्यकताओं का एक सेट होता है जिसे उन्हें संतुष्ट करना चाहिए, जिनमें से एक "टेल कॉल ऑप्टिमाइज़ेशन" है जो पुनरावृत्ति को कुशल बनाने में मदद करता है। इसलिए, LISP की तुलना में योजना में प्रोग्रामिंग की पुनरावर्ती शैली बहुत अधिक लोकप्रिय हैं। योजना है, बिना निर्दयी हुए भी, LISP के "C" की तरह। यह कहना है, यह एक छोटी सी भाषा है और आप इसे एक ही बार में अपने सिर पर रखने में सक्षम होना चाहिए।

वर्तमान में दो योजना परिवार हैं: वे 5 वें संस्करण (आर 5 आरएस) और 6 वें संस्करण (आर 6 आरएस) पर आधारित हैं। R6RS की जटिलता उसके पूर्ववर्तियों की तुलना में बेतहाशा अधिक थी और इसलिए R5RS के कई कार्यान्वयनों ने इसे छोड़ने का विकल्प चुना है, उम्मीद है कि R7RS R6RS की तुलना में R5RS के समान होगा। R7RS मानकीकरण प्रक्रिया वर्तमान में चल रही है और दोनों R5RS कार्यान्वयनकर्ताओं की इच्छाओं के साथ-साथ R6RS के लोगों को अपने पहले कार्य समूह में एक छोटी आधार भाषा का मानकीकरण करने और फिर बड़ी विशेषताओं को मानकीकृत करने के लिए एक दूसरे समूह समूह को शामिल करने की कोशिश की है। यह भाषा को छोटे एम्बेडेड हार्डवेयर के साथ-साथ अधिक सक्षम मशीनों पर कुशल और उपयोगी कार्यान्वयन करने की अनुमति देगा।

अब मैं और विशिष्ट हो जाऊंगा:

PicoLisp एक वास्तव में, बहुत अच्छा LISP है। यह छोटा है! यह लेखक ने इसे खुद के लिए लिखा है और जैसा कि मैं इसे समझता हूं, वह 1980 के दशक से इसे बंद कर रहा है। यदि आपको कभी उसके द्वारा किसी बात में उपस्थित होने का अवसर मिलता है, तो आपको यह करना चाहिए: वह वास्तव में दिलचस्प है और वास्तव में उसका सामान जानता है और आपको किसी भी मुख्यधारा या उबाऊ चीज़ का सबसे छोटा सूँघने की भी ज़रूरत नहीं होगी।

मैं आम लिस्प कार्यान्वयनों से परिचित नहीं हूं इसलिए मैं उन पर आगे टिप्पणी नहीं करूंगा।

Guile आधिकारिक GNU योजना है।

रैकेट एक R6RS योजना है, लेकिन हाल ही में ऐसा लगता है कि इसने जाल को चौड़ा कर दिया है और "भाषा निर्माण, डिजाइन और कार्यान्वयन के लिए एक मंच के रूप में सेवा करने की कोशिश कर रहा है।"

चिकन का उद्देश्य व्यावहारिक योजना है। यह R5RS पर आधारित है और सी के लिए नीचे संकलित है। यह वास्तव में, वास्तव में, महत्वपूर्ण लाभ के रूप में निकलता है क्योंकि यह मौजूदा सी पुस्तकालयों का उपयोग करने के लिए बिल्कुल तुच्छ बनाता है। इसलिए, पेरल, पायथन, रूबी, आदि को बदलने के लिए चिकन संभवतः सबसे उपयोगी योजना है, जैसा कि आपकी दिन-प्रतिदिन की स्क्रिप्ट भाषा। ऐसे कई लोग हैं जिन्होंने कई वर्षों से अपनी सभी जरूरतों के लिए विशेष रूप से इसका उपयोग किया है। इसमें संवादात्मक REPL के साथ-साथ संकलक भी है। समुदाय (मेलिंग सूची और IRC दोनों) जानकार, मिलनसार और मददगार हैं।

बहुत सारे मॉड्यूल के साथ कार्यान्वयन के लिए देखें: यह दिखाता है कि यह व्यापक रूप से प्रयोग करने योग्य है और इसका मतलब है कि इसमें कुछ ऐसा होने की संभावना है जो हाथ में काम के साथ मदद करता है।

एक कंपाइलर के साथ या बहुत कम से कम, कुछ ऐसा है जो सख्ती से IDE या REPL आधारित नहीं है, के कार्यान्वयन के लिए देखें। शिक्षण के लिए डिज़ाइन किए गए बहुत सारे कार्यान्वयन सामान्य प्रयोजन स्क्रिप्टिंग के लिए उपयोग करना बहुत मुश्किल है।

मैं चिकन की सलाह दूंगा जैसा कि मैं उपयोग करता हूं। मैंने इसे अपनी व्यक्तिगत परियोजनाओं में उपयोग किया है और मैंने इसका इस्तेमाल किया है (और वर्तमान में इसका उपयोग कर रहा हूँ)।

मैं किसी चीज में अनुचित प्रयास नहीं करना चाहता हूं अगर वह पूरी तरह से अप्रचलित है - मैं अभी भी इसे सीखूंगा यदि यह पेशेवर "मृत" था, लेकिन केवल एक शैक्षणिक दृष्टिकोण के साथ ...

योजना पेशेवर रूप से मृत नहीं है, लेकिन आपको उस संदर्भ में इसका उपयोग करने के लिए कुछ लंबाई तक जाना पड़ सकता है। चिकन की तरह कुछ एक अकादमिक खोज से कहीं अधिक है और यह आपके द्वारा वर्तमान में उपयोग की जाने वाली उच्च-स्तरीय भाषाओं के लगभग सभी आधारों को आसानी से कवर कर सकता है।


3
रैकेट R6RS स्कीम नहीं है; रैकेट वितरण प्रदान करने वाली भाषाओं में से एक है। वास्तविक रैकेट भाषा एक योजना है जो RnRS से कई महत्वपूर्ण तरीकों से प्रस्थान करती है (जिसके बारे में मेरे पास मिश्रित भावनाएं हैं)।
जेसनफ्रंट

27

वास्तव में सभी लिस्प्स के लिए नहीं बोल सकते लेकिन क्लोजर निश्चित रूप से वर्तमान में एक गर्म और प्रासंगिक भाषा है। एक लंदन क्लोजर उपयोगकर्ता समूह मैं इस सप्ताह के शुरू में गया था 100 से अधिक उपस्थितगण ....

मैंने पाया है कि यह पिछले साल की तुलना में क्लोज़र (जावा और सी # के साथ बहुत अनुभव के बाद) के रूप में लिस्प सीखने के लिए एक बहुत ही ज्ञानवर्धक अनुभव है। इसके मुख्य कारण हैं:

  • यह कार्यात्मक प्रोग्रामिंग (अधिकांश अन्य लिस्प्स की तुलना में अधिक) पर काफी मजबूत है । लेखक और BDFL रिच हिकी ने अक्सर हास्केल को भाषा डिजाइन के लिए उनकी प्रेरणाओं में से एक के रूप में उद्धृत किया है, जिसका अर्थ है कि आपको पूरी तरह से अपरिवर्तनीय डेटा संरचनाएं और आलसी अनंत अनुक्रम आदि जैसी चीजें मिलती हैं।
  • मैक्रो मेटाप्रोग्रामिंग - लिस्प "कोड डेटा है" दर्शन को समझना मुश्किल है जब तक कि आपने वास्तव में इसका अनुभव नहीं किया है, लेकिन यह एक कारण है कि लिस्प्स इतने अभिव्यंजक और उत्पादक हैं
  • मल्टी-कोर कंसिस्टेंसी के लिए शानदार समर्थन - मुझे वास्तव में लगता है कि क्लोजर अभी समवर्ती प्रोग्रामिंग के लिए सबसे अच्छी भाषा है। इसके बारे में ज्ञानवर्धक प्रस्तुति के लिए http://www.infoq.com/pretations/Value-Identity-State-Rich-Hickey देखें

यह निम्नलिखित कारणों से वास्तविक उत्पादन उपयोग के लिए एक व्यावहारिक विकल्प प्रतीत होता है:

  • बहुत आसान जावा इंटरऑपरेबिलिटी के साथ जेवीएम पर चलना आपको जावा पारिस्थितिकी तंत्र के सभी पुस्तकालयों और उपकरणों तक पहुंच देता है
  • यह डिफ़ॉल्ट रूप से एक गतिशील भाषा है, जो विकास के लिए बहुत सुविधाजनक है और किसी भी बॉयलरप्लेट के साथ तेजी से प्रोटोटाइप है। हालाँकि आप स्थैतिक प्रकार के संकेत जोड़ सकते हैं, जहाँ आपको इसकी अच्छी आवश्यकता हो।

मैं व्यक्तिगत रूप से निवेश बैंकों और स्टार्टअप के एक जोड़े में क्लोजर का उपयोग करने वाले लोगों के बारे में जानता हूं। मैंने क्लोजर को अपने स्वयं के स्टार्टअप के लिए प्राथमिक विकास भाषा के रूप में भी चुना है, इसलिए मैं अपना पैसा लगाने के लिए तैयार हूं जहां मेरा मुंह है :-)


9

मैं वर्तमान में लिस्प सीख रहा हूं (और मुझे यह पसंद है)। मैं कॉमन लिस्प का उपयोग करता हूं, लेकिन मैंने एसबीसीएल , आर्क (नोट, जो कि लिस्प के पॉल ग्राहम का संस्करण है , के साथ गड़बड़ कर दी है , जैसा कि विटोर ब्रागा ने याहू स्टोर / वाएवेब बनाया है) और एलेग्रो सीएल जो लिस्प के लिए विज़ुअल स्टूडियो के समान है (कर सकते हैं) GUIs बनाएं, हालाँकि, मैंने इसका कभी उपयोग नहीं किया है)।

उपयोग के लिए, लिस्प का उपयोग आर्टिफिशियल इंटेलिजेंस में बहुत किया गया है, लेकिन मैं ईमानदार रहूंगा, मुझे यकीन नहीं है कि लिस्प के लिए अन्य "सामान्य" कितने उपयोग करते हैं। लिस्प में निर्मित बहुत सारी वेबसाइटें मूल रूप से अन्य भाषाओं में फिर से लिखी गई हैं, इसलिए यह कहना मुश्किल है कि इसका उपयोग वेब विकास में किया जाता है (यह नहीं कह रहा है, लेकिन बड़े साइट जो इसका उपयोग करते हैं वे अब नहीं करते हैं )। एक त्वरित खोज (बहुत जल्दी) करने के बाद यहाँ विकिपीडिया से कॉमन लिस्प में लिखे गए सॉफ्टवेयर की एक सूची है ।

[संपादित करें] लिस्प का व्यावसायिक रूप से उपयोग करने के लिए, वहाँ नौकरियां हैं जो आपने लिस्प का उपयोग किया होगा। वे जावा या सी # नौकरियों के रूप में कई के रूप में नहीं हैं, लेकिन वे मौजूद हैं। मुझे लगता है कि लिस्प उन भाषाओं में से एक है जो आंतरिक अनुप्रयोगों के लिए उपयोग की जाती है और एक प्रतिस्पर्धात्मक लाभ प्रदान कर सकती है जो कंपनियां विज्ञापन द्वारा छोड़ना नहीं चाहती हैं कि वे लिस्प का उपयोग करती हैं। मुझे याद है कि P.SE पर एक पोस्ट देखकर कहा गया था कि स्मॉलटाक वित्तीय क्षेत्र में समान था।

इसके अलावा, आपको दिखाने में सक्षम होने के कारण आप विभिन्न प्रतिमानों को सीख सकते हैं, भले ही आप नौकरी में लिस्प का उपयोग न करें।

"लिस्फ़ गहन ज्ञान प्राप्त करने के अनुभव के लिए सीखने लायक है, जब आपके पास होगा जब आप इसे अंततः प्राप्त करेंगे; वह अनुभव आपको अपने बाकी दिनों के लिए एक बेहतर प्रोग्रामर बना देगा, भले ही आप वास्तव में कभी भी लिस्प का उपयोग न करें।" - एरिक रेमंड, "हाउ टू बी हैकर"

[/ संपादित करें]


7
एफडब्ल्यूआईडब्ल्यू, एसबीसीएल कॉमन लिस्प का एक कार्यान्वयन है और इसलिए एलेग्रो सीएल है।
वैटाइन

@ वैटाइन - आप सही होंगे। अगर कोई दमकता हुआ चेहरा होता तो मैं अभी बना देता। मुझे नहीं पता कि मैंने यह क्यों माना कि वे अलग थे। मुझे अलग संकलक बेवकूफ! = अलग बोली :) धन्यवाद!
जेटी

@ जेफ़: ठीक है, वे दोनों अलग-अलग दिशाओं में भाषा का विस्तार करते हैं, जबकि "सीएल कोर" इंटरऑपरेबल छोड़ते हैं।
वेटाइन

@ जेटी आप पहली जगह में क्या इस्तेमाल कर रहे थे?
मार्क सी

मेरा मानना ​​है कि मैं सीएलआईएसपी का उपयोग कर रहा था, यह एक वीएम छवि पर था जो अब मेरे पास नहीं है। मुझे लगता है कि मेरी अज्ञानता ने मुझे विश्वास दिलाया कि यह आम लिस्प था। कम से कम अब मैं बेहतर जानता हूं।
18

8

यदि आप आज लिस्प सीखना चाहते हैं, तो मेरे पास रैकेट पर एक नज़र होगी, जो एक तेज़ योजना कार्यान्वयन है (ठीक है, यह वास्तव में योजना से थोड़ा हट गया है, इसलिए यह अब अपनी बोली है) या क्लोजर, जिससे लाभ होता है जेवीएम पर यह चलता है (इसलिए पुस्तकालयों के गजिलियन्स उपलब्ध हैं, साथ ही आप इसे अपने स्वयं के जावा कोड के साथ इंटरैक्ट कर सकते हैं)।

यहां तक ​​कि अगर आप इसे वास्तव में उपयोग करने के लिए नहीं सीखते हैं, तो यह सीखना हमेशा फायदेमंद होता है: आप एक बार कुछ समय के लिए लिस्प के चारों ओर अपने मन को लपेटे हुए, अन्य भाषाओं में भी सोचने और समस्याओं से निपटने के नए तरीके सीखते हैं।


3
स्कीम के साथ समस्या यह है कि जब आप इसके साथ कुछ अभ्यास करना शुरू करते हैं तो आप अन्य भाषाओं में वापस नहीं जाना चाहते हैं। मैंने अभी C ++ में स्ट्रीम (संभवतः अनंत, आलसी मूल्यांकन, अपरिवर्तनीय अनुक्रम) को लागू करना शुरू कर दिया है और यह योजना की तुलना में बहुत अधिक कोड है! मुझे योजना की सरलता और शक्ति के संयोजन से वास्तव में आश्चर्य हुआ।
जियोर्जियो

+ रैकेट के लिए। यह वास्तव में अविश्वसनीय रूप से पूर्ण है, जो अन्य योजनाओं के आलोचकों में से एक है। और यह ऊपर और परे चला जाता है कि आपकी भाषा बनाने के संबंध में क्या योजना है।
स्कॉट कर्लेनबैक

7

अमेज़ॅन बैकएंड का एक महत्वपूर्ण हिस्सा लिस्प में हुआ करता था लेकिन अब सी ++ में फिर से लिखा गया था, या इसलिए मैंने सुना है (मुझे मानना ​​होगा कि मेरे पास इसके लिए एक विश्वसनीय स्रोत नहीं है)।

याहू! स्टोर्स लिस्प वेब ऐप्स के क्लासिक उदाहरणों में से एक है। याहू से! स्टोर प्रसिद्धि आप पॉल ग्राहम के बारे में सुना हो सकता है । ग्राहम सबसे प्रसिद्ध लिस्प अधिवक्ताओं में से एक है और इस विषय के बारे में विस्तार से लिखता है। आप उनकी बातों को जानने के लिए उनकी साइट को पढ़ना चाह सकते हैं।

ऑटोकैड में मैक्रो सिस्टम के लिए लिस्प बोली होती थी। मुझे नहीं पता कि क्या यह अभी भी करता है।

योजना एक स्वच्छ भाषा है और बहुत ही सुरुचिपूर्ण है। यह शायद मेरी पसंदीदा प्रोग्रामिंग भाषा है इसलिए मैं पक्षपाती हो सकता हूं। अगर मैं अभी लिखने जा रहा हूं तो एक प्रमुख एप्लिकेशन मैं संभवतः सी में एक कंकाल आवेदन लिखूंगा, योजना में व्यावसायिक नियमों का विस्तार और परिभाषित करूंगा। यह मुझे योजना का उपयोग करने और सी का लाभ उठाने के लिए - गति के लिए और लगभग हर चीज के लिए पुस्तकालयों की सरासर उपलब्धता के लिए अनुमति देता है।


आप योजना के लिए एक शुरुआत पुस्तक / संकलक के रूप में क्या सुझाएंगे? मैं लिनक्स का उपयोग करता हूं, इसलिए यदि कोई संपादक है जो नौसिखियों के लिए स्पष्ट रूप से उपयोगी है, (जैसे कि
लाईटेक्स के

1
@ shan23 द लिटिल सीमर ( ccs.neu.edu/home/matthias/BTLS ) आपका सबसे अच्छा दांव है। मेरा मानना ​​है कि स्कीम के लिए एमएसीएस सबसे आम संपादक है लेकिन इसकी आदत पड़ने में थोड़ा समय लगता है।
विटर पाय

1
लिस्प के लिए संपादक, आसान thats, emacs का उपयोग करें। यह लिस्प दोस्तों द्वारा लिखा गया था, और लिस्प में।
ज़ाचरी के

आप रैकेट आईडीई ( racket-lang.org ) का भी उपयोग कर सकते हैं ; यह Emacs की तरह है, लेकिन इस योजना की व्याख्या करने वाले के साथ ऑटो-फ़ॉर्मेटिंग और इंटरैक्शन है।
यिर्मयाह विलकॉक

लिस्पबॉक्स ( आम-lisp.net/project/lispbox ) बॉक्स से बाहर काम करता है (कुछ emacs अनुभव उपयोगी है)। यह ccl ( ccl.clozure.com ) पर आधारित है , यह भी देखें gamamonkeys.com/book/…
Giorgio

4

क्या LISP का आज भी दुनिया में उपयोग किया जाता है, या क्या यह FORTRAN / COBOL जैसी विरासत की भाषा है? मेरा मतलब है, मौजूदा कोड को बनाए रखने के अलावा, क्या इसका उपयोग नई परियोजनाओं पर किया जाता है?

मैं ऐसे कई लोगों को जानता हूं जो सिलिकॉन वैली में कुछ स्टार्टअप में लिस्प्स करते हैं, और मुझे पता है कि Amazon.com शुरुआत से ही लिस्प का उपयोग कर रहा है (हालांकि मैंने सुना है कि वे किसी कारण से इसे C ++ से बदल रहे हैं?)

लेकिन एक कंपनी शरारती कुत्ते पर नजर रखने के लिए है । उनके सभी खेल लिस्प बोली के साथ लिखे गए हैं। मूल रूप से, उन्होंने खुद को रोल किया, लेकिन वे अनजेटेड श्रृंखला में MZScheme का उपयोग करते हैं।

सबसे व्यापक रूप से बोली जाने वाली बोली कौन सी है? मैं 2 सबसे प्रचलित बोलियों के रूप में स्कीम और कॉमन लिस्प में आया था, और आपकी राय चाहता था कि जो सीखने के लिए सबसे पसंदीदा / उपयोगी है - और यदि आप एक रैंक शुरुआत के लिए किसी भी संसाधन का सुझाव दे सकते हैं, तो वह बहुत आभारी होगा।

मुझे लगता है कि आम लिस्प, क्लोजर, स्कीम, और एमएसीएस लिस्प चार सबसे व्यापक रूप से इस्तेमाल की जाने वाली बोलियाँ हैं, और उनमें से, मुझे संदेह होगा कि स्कीम सबसे अधिक तैनात है। मैं निश्चित रूप से इस के साथ वापस करने के लिए कुछ भी नहीं है। :)

मुझे एसआईसीपी और लिटिल स्कीमर पसंद हैं, जैसा कि दूसरों ने सुझाव दिया है, लेकिन मैं लैंड ऑफ लिस्प का भी सुझाव दूंगा , जो एक मनोरंजक मनोरंजन है। :)


दरअसल, लैंड ऑफ लिस्प एक अद्भुत रीड है।
चिरोन

@ 4bu3li Y u upvote नहीं?
मार्क सी।

1
शरारती कुत्ते के बारे में: यह पूरी तरह से सही नहीं है, उनके PS2 गेम GOAL में लिखे गए थे, एक लिस्प जैसी भाषा ... लेकिन PS3 में जाने के बाद से, उन्होंने C ++ का उपयोग करने के लिए स्विच किया है। MZScheme का उपयोग ज्यादातर मैक्रो प्रीप्रोसेसर के रूप में किया जाता है, C ++ के साथ इन-लाइन लिखा जाता है, और कुछ परिसंपत्ति प्रसंस्करण के लिए उपयोग किया जाता है, और उनकी कुछ स्क्रिप्ट एस-एक्सपी में लिखी जाती हैं। लेकिन कोई MZScheme कोड वास्तव में PS3 पर नहीं चलता है।
एरियल

2

मुझे लगता है कि यह आंशिक रूप से इस बात पर निर्भर करता है कि आप इसके साथ क्या करना चाहते हैं - यदि आप प्रोग्रामिंग की विभिन्न अवधारणाओं में अपनी अंतर्दृष्टि को आगे बढ़ाने और अपने आप को एक बेहतर प्रोग्रामर बनाने के लिए देख रहे हैं, तो मैं कहूंगा कि यह कम से कम लिस्प के एक मामूली सीखने के लायक है। यदि आप इस भाषा के साथ काम करने की दृष्टि से अपने फिर से शुरू करने के लिए एक और भाषा को जोड़ना चाहते हैं, तो आप शायद कहीं और देखना चाहते हैं। वहाँ कई लिस्प नौकरियां वहाँ नहीं हैं।

मैं व्यक्तिगत रूप से या तो SBCL या हाल ही में, Clojure (और कुछ Emacs Lisp) का उपयोग करने की कोशिश करता हूं, लेकिन htat का क्योंकि मैं एक दीर्घकालिक Emacs उपयोगकर्ता हूं - जब मैं Lisp सीखने की कोशिश करता हूं तो मैं Emacs Lisp सीखने की कोशिश करूंगा। अब मुझे केवल उन भाषाओं के साथ वास्तव में खेलने का समय मिल रहा है ...


1
इसके ज्यादातर पहले ... अपने स्पष्ट रूप में स्पष्ट है कि अगर मैं उस में सफल होता हूं, तो यह निश्चित रूप से मेरे फिर से शुरू होने पर चोट नहीं पहुँचाएगा :)। लेकिन गंभीरता से, मैं अलग-अलग प्रोग्रामिंग "शैलियों" पर एक परिप्रेक्ष्य चाहता हूं, ताकि मेरे पास एक अच्छा विचार हो, जिसके लिए अलग-अलग परिदृश्यों में उपयोग किया जा सके (केवल एक हथौड़ा से लैस होने की स्थिति में नहीं पड़ना चाहिए,) मुझे सभी समस्याओं का इलाज नाखूनों के रूप में करना है !!)
TCSGrad

2

मुझे नहीं पता कि LISP में एक टन की नौकरी है, मैं निश्चित रूप से उन्हें नहीं देख सकता। लेकिन मुझे याद है कि नासा की कुछ जांच के बारे में पढ़ने में काफी समय लगता है, जहां वे LISP चला रहे थे और धरती से नया कोड डालने में सक्षम थे।

इसके अलावा न्यूयॉर्क में क्लोजर मीटअप समूह बहुत बड़ा है। मैं अनुमान लगा रहा हूं कि यदि आप रुचि रखते हैं और अपने क्लोजर मीटअप ग्रुप में जाएं तो आपको नेटवर्क के अवसर मिल सकते हैं और जॉब मिल सकती है (क्लोजर जॉब्स नहीं बल्कि जावा / सी ++ / आदि जैसी चीजें।)। यह न्यूयॉर्क क्षेत्र में बिल्कुल भारी लगता है, अन्य क्षेत्रों में भिन्न हो सकते हैं।

इसके अलावा LISP सोचने का एक अलग तरीका है। इसके अलावा LISP और SQL दोनों नेस्टेड एक्सप्रेशन के टन का उपयोग करते हैं। मैंने एक टन एसक्यूएल का उपयोग किया और फिर एलआईएसपी को अधिक समझ में आया। लेकिन अगर आपको SQL के साथ सुपर नेस्टेड कोष्ठक और अभिव्यक्ति के लिए उपयोग करने में परेशानी हो रही है, तो LISP का उपयोग करते समय संभवतः SQL अभिव्यक्तियों का पता लगाना बहुत आसान हो जाएगा।

एक क्लासिक उदाहरण है कि मैक्स (ए, बी, सी) को कैसे लागू किया जाए। यदि आप कथनों का एक गुच्छा के साथ एक जटिल कार्य कर सकते हैं। या आप बस कह सकते हैं

MAX (अधिकतम (a, b), c)

और दो आइटम मैक्स के दो सरल नेस्टेड कॉल का उपयोग करें, जो मेरे लिए पढ़ना आसान है। हालाँकि यदि प्रदर्शन एक ऐसा मुद्दा है जिसे आप इसे दूसरे तरीके से भी करना चाह सकते हैं, तो मैंने प्रत्येक विधि का उपयोग करते समय तुलना की संख्या को गिनने की जहमत नहीं उठाई ... इसके अलावा अगर आप MAX को C मैक्रो या अन्य विधि के माध्यम से लागू कर रहे हैं जो मूल्यांकन करता है अभिव्यक्ति कई बार आपको अपेक्षित परिणाम नहीं मिल सकती है क्योंकि अभिव्यक्ति का मूल्यांकन कई बार हो सकता है इसलिए साइड इफेक्ट्स के साथ देखें ...


3
आप वास्तव में MAX को सरल बना सकते हैंMAX(MAX(a b) c)
Andrea

आप सही हैं, यही बात मुझे जागने के तुरंत बाद जवाब देने के लिए मिलती है। मैंने उत्तर समायोजित कर दिया।
ग्रीवो

2
NASA प्रोजेक्ट डीप स्पेस 1 था: flownet.com/gat/jpl-lisp.html
फ्रैंक

2

दो अतिरिक्त बिंदु:

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

दूसरा: यदि आप लिस्प की किसी भी बोली के साथ प्रयोग करने जा रहे हैं, तो मैं इसे (ए) कोष्ठक से मेल खाने वाले संपादक का उपयोग किए बिना नहीं करूंगा, और (बी) उचित लिस्प इंडेंटेशन सीख रहा हूं। एक संपादक का उपयोग करना एक अच्छा विचार होगा जो आपके लिए भी उचित इंडेंटेशन का अनुमान लगाएगा। C / C ++ / Java-style code formatting उन भाषाओं के लिए डिज़ाइन की गई है, जिनमें लिस्प की तुलना में कम कोष्ठक / ब्रेसिज़ / कोष्ठक होते हैं। लिस्प सुंदर मुद्रण शैली अच्छी तरह से काम करती है एक बार जब आप इसके साथ परिचित हो जाते हैं, और आप कोष्ठक द्वारा भ्रमित होने का अंत नहीं करते हैं या आपके अंतरिक्ष के आधे भाग को एक समापन कोष्ठक प्रति पंक्ति में डालते हैं।


1

अभी मुझे यह आभास मिलता है कि लिस्प का उपयोग ज्यादातर परामर्श दुकानों में किया जाता है (यह नहीं कि परामर्श दुकानें ज्यादातर इसका उपयोग करती हैं)।

यह व्यावहारिक सॉफ्टवेयर के लिए थोड़ा आउट माना जाता है। ज्यादातर इसलिए कि लोगों को इसकी आदत नहीं है, मेरा मानना ​​है।

परंपरागत रूप से, स्कीम लिस्प की एक काफी शैक्षिक बोली है, और कॉमन लिस्प उद्योग की बोली थी।

लिस्प प्रतीकात्मक हेरफेर और प्रतिबिंब-एस्के क्षमताओं के लिए विशेष रूप से उपयोगी है।

एक उदाहरण के रूप में, लिस्प को सीखने के लिए मैंने जो कोड लिखा था, वह एक प्रोग्राम था जिसने यादृच्छिक लैम्ब्डा कार्यों का निर्माण किया, उनका मूल्यांकन किया और फिर एक लक्ष्य फ़ंक्शन के साथ फ़ंक्शन के अंतर को कम करने के प्रयास में उन पर काम किया। यह सब प्रत्यक्ष हेरफेर था। C ++ या Java जैसी भाषा में, मुझे उन कार्यों के लिए एक प्रतिनिधित्व का आविष्कार करना होगा जिन्हें कंप्यूटर हेरफेर करेगा।


दिलचस्प बात यह है कि आपने स्कीम / कॉमन लिस्प के बीच के अंतर के बारे में - क्या आप इसके बारे में विस्तार से बता सकते हैं कि यह क्यों / कैसे है?
टीसीएसग्रैड


1

मैं कॉमन लिस्प और स्कीम के बारे में कुछ परिप्रेक्ष्य जोड़ना चाहूंगा। मैंने JVM के कारण क्लोजर से परहेज किया है, इसलिए मेरे पास इस पर बहुत अधिक दृष्टिकोण नहीं है।

योजना एक सुंदर संक्षिप्त, अच्छी तरह से परिभाषित भाषा है। लेगसी के कारण सीएल को कई निर्णय लेने पड़े और अधिक शुद्ध दृष्टिकोण अपना लिया। उदाहरण के लिए, चर और फ़ंक्शन समान नामस्थान में हैं। डिफ़ॉल्ट भाषा छोटी और अधिक संक्षिप्त होती है, जो आपको उन चीजों के प्रकार को सिखाने के लिए अच्छी तरह से काम करती है जो लिस्प अच्छा है, उदाहरण के लिए यह पुनरावृत्ति के बजाय पुनरावृत्ति के उपयोग को दबाता है, क्योंकि डिफ़ॉल्ट रूप से इसमें कोई पुनरावृत्त लूप नहीं है, और कॉल अनुकूलन की आवश्यकता होती है । स्कीम में एक बहुत ही दिलचस्प हाइजीनिक मैक्रो सिस्टम है, जो सीखने के लिए बहुत महत्वपूर्ण है। लेकिन IMO, मैं सबसे पहले CL-style Unhygienic macros सीखने की सलाह दूंगा, जिनमें से अधिकांश (?) स्कीम की बोलियाँ कम से कम एक कार्यान्वयन की पेशकश करती हैं, भले ही यह कल्पना का हिस्सा न हो। चूंकि यह बहुत लगता है कि आप सीखने के लिए एक भाषा सीखना चाहते हैं I '

यह कहने के बाद कि, स्कीम का समुदाय खंडित है, और कुछ छोटी जेबों की तुलना में, ऐसा लगता है कि ज्यादातर वास्तविक काम करने के लिए अनुसंधान के लिए समर्पित हैं ... उदाहरण के लिए हर बोली का अपना पैकेज प्रबंधक होता है, और पैकेज अक्सर पोर्टेबल नहीं होते हैं बोलियों के पार, जो योजना समुदाय में एक बड़ी समस्या है।

दूसरी ओर आम लिस्प, एक भाषा विकसित करने के लिए बहुत अधिक व्यावहारिक दृष्टिकोण प्रतीत होता है। मानक ऐसा है कि कार्यान्वयन के बीच बहुत लिस्प कोड पोर्टेबल है, कई कंपाइलर तेज और अच्छी तरह से अनुकूलित हैं। पैकेज का एक बड़ा सेट है, जिनमें से कई कार्यान्वयन के बीच पोर्टेबल हैं। और प्रतीत होता है कि (तुलनात्मक रूप से) वास्तविक उत्पादों की बड़ी मात्रा भाषा में बन रही है। और कहें क्विकलाइज़ के साथ, यह पैकेज प्रबंधन काफी हद तक करीब महसूस करता है जो आपको रूबी, या नोड जैसे आधुनिक समुदाय में मिलेगा। सीएल, हालांकि खामियों के बिना नहीं है, इस योजना की तुलना में इस बिंदु पर एक बहुत बड़ी कल्पना है, और यहां तक ​​कि यह ऑब्जेक्ट सिस्टम सीएलओएस भी है, कुछ ऐसा जो परंपरागत रूप से लिस्प्स में एक पुस्तकालय के रूप में लिखा गया है, कल्पना IIRC का हिस्सा है। और आप सिस्टम की एक बड़ी मात्रा के माध्यम से विरासत में महसूस कर सकते हैं।

अन्यथा, मैंने कहा कि मैं क्लोजर पर नहीं बोल सकता था, और Emacs Lisp स्पष्ट रूप से उपयुक्त विकल्प है यदि आपका लक्ष्य Emacs एक्सटेंशन लिखना है, और स्पष्ट रूप से अन्य सॉफ़्टवेयर के लिए उपयुक्त विकल्प नहीं है।

TLDR; यदि आपका लक्ष्य सीखना है, तो मैं योजना की सिफारिश करता हूं। हालाँकि, यदि आप सॉफ़्टवेयर बनाना चाहते हैं, तो मैं दो प्रमुख लिस्प वेरिएंट के कॉमन लिस्प की सिफारिश करूँगा।


BTW, PLT रैकेट एक ऐसी भाषा है जो अधिक योजना की तरह है, और मूल रूप से उस योजना समुदाय से है जो वास्तविक कार्य के लिए उपयोगी होने की कोशिश कर रही है। अगर मुझे इन दिनों किसी योजना में कोड लिखना होता है, तो यह संभवतः PLT, या चिकन योजना होगी, लेकिन बाद में मेरे दिल में एक नरम स्थान के कारण हो सकता है।
एरियल

0

मैंने जवाबों से बहुत कुछ सीखा। इस ज्ञानवर्धक वार्तालाप में योगदान देने वाले सभी को धन्यवाद।

मुझे newLISP का उल्लेख करना चाहिए । हालाँकि यह CL और स्कीम दोनों से थोड़ा भिन्न है, यह बहुत उपयोगी कार्यों को कार्यान्वित करता है। मुझे http सर्वर, मल्टी-प्रोसेसिंग फंक्शनलिटी (Cilk) और रिमोट मूल्यांकन फ़ंक्शन बहुत साफ और उपयोग में आसान लगते हैं।

एकल निष्पादन योग्य छोटा, तेज है और इसमें बहुत सारी शांत बैटरी शामिल हैं।


शायद इसका उल्लेख करना उचित है, लेकिन मैं बिल्कुल इसकी सिफारिश नहीं करूंगा ... कोई लेक्सिकल स्कूपिंग और उदाहरण के लिए कोई मॉड्यूल नहीं - गंभीरता से? मैं वास्तव में क्या newLISP पूरा करने के लिए कोशिश कर रहा है नहीं मिलता है।
cji

2
आप सही कह रहे हैं - यह अलग है। यह संदर्भों और गतिशील स्कूपिंग का उपयोग करता है और मेरे अनुभव मॉड्यूल और संदर्भों का परस्पर संबंध है। यह दूसरा CL या स्कीम बनने की कोशिश नहीं करता है। पृष्ठ को पढ़ने पर यह कैसे भिन्न होता है ( newlisp.org/index.cgi?page=Differences_to_Other_LISPs ) डिजाइन मुद्दों पर प्रकाश डालता है। इसी तरह, मैं किसी को भी सीएल या स्कीम का अनुभव नहीं चाहता। लेकिन कुछ उपयोग मामलों के लिए यह एक व्यवहार्य विकल्प हो सकता है। यह खुले स्रोत पारिस्थितिकी तंत्र की सुंदरता है - बहुत सारे विकल्प!
साइबर फॉरेन

0

चुनने के लिए लिस्प की कौन सी बोली चुनने पर विचार करने के लिए एक और कारक कार्यान्वयन की संख्या और गुणवत्ता हो सकती है। यदि किसी बोली में केवल एक या दो कार्यान्वयन होते हैं, तो आप अपनी खामियों के साथ फंस जाते हैं, जब तक कि उन दोषों को ठीक नहीं किया जाता है, और हमेशा एक मौका होता है कि लोग कार्यान्वयन को परिष्कृत करना बंद कर देंगे। अपने आप में यह लिस्प की एकल-कार्यान्वयन बोली का उपयोग नहीं करने का एक कारण नहीं है, लेकिन यह कुछ को ध्यान में रखना है। स्कीम और कॉमन लिस्प का एक फायदा यह है कि इन बोलियों के कई कार्यान्वयन हैं। दोनों भाषाओं में मानक प्रकाशित हैं, इसलिए अपेक्षाकृत हालिया कार्यान्वयन में समान कोड चलाने की संभावना है, ज्यादातर। इनमें से कुछ कार्यान्वयन लंबे समय से हैं, लेकिन अभी भी सक्रिय विकास के अधीन हैं: वे अब उच्च-गुणवत्ता वाले कार्यान्वयन हैं, और उन्हें अभी भी परिष्कृत किया जा रहा है।


खैर के अनुसार कि मानक Clojure SBCL के साथ तुलना में बहुत बुरा नहीं कर रहा है: benchmarksgame.alioth.debian.org/u32/...
AndreasScheinert

धन्यवाद एंड्रियास। आप सही हे। दिखाता है कि मुझे JVM के बारे में कितना पता है - ज्यादा नहीं। भाग में मुझे ABCL द्वारा गुमराह किया गया था, अपेक्षाकृत धीमी लेकिन अन्यथा अच्छी JVM- आधारित सीएल।
मंगल

अगर आप जेवीएम पर एक लिस्प चाहते हैं, तो मैं दलील दूंगा कि क्लोजर के लिए जाओ। यह सही नहीं है, लेकिन यह एक वास्तविक खुशी (IMHO) है
AndreasScheinert
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.