27

मैं अगर वहाँ एक REPL जो भाषा-विशिष्ट नहीं है जानना चाहते हैं। मैं समय की एक बहुत खर्च करते हैं और REPLs (Clojure, स्काला और हास्केल के लिए मुख्य रूप से) से बाहर डुबकी, और बंडल वाले सभी मुझे एक अधिक या कम हद तक हताश। यह एक आरईपीएल का काम की तरह लगता है कि काफी सामान्य है वे:उन सभी को बांधने के लिए एक आरपीएल?

  • पढ़ें: उपयोगकर्ता इनपुट
  • मूल्यांकन ले:
  • प्रिंट प्रसंस्करण के लिए कुछ क्रम के लिए इनपुट पारित: परदे के लिए परिणाम प्रिंट
  • लूप: अगले उपयोगकर्ता इनपुट

मैं नहीं दिख रहा है यही कारण है कि वहाँ कुछ भाषा-नास्तिक आरईपीएल नहीं होना चाहिए के लिए इंतजार है, लेकिन मैं ऐसी बात को खोजने में असमर्थ किया गया है। कुछ बातें मैं अपने आदर्श आरईपीएल में करना चाहते हैं:

  • लिनक्स कमांड लाइन आवेदन
  • अनंत इतिहास ऊपर तीर से पहले पिछले आदेशों को संपादित करने के
  • की क्षमता के माध्यम से सुलभ फिर से चल रहा
  • Ctrl-R के लिए इतिहास खोज like bash has
  • एक आरईपीएल में अनेक सत्र, इसलिए मैं उन दोनों के बीच आसानी से स्विच कर सकते हैं

और अधिक आशावादी

  • वाक्य रचना हाइलाइटिंग, संदर्भ-अवगत कोड पूरा होने

इस मौजूद है?

+5

सभी Emacs REPL मोड कॉमिंट मोड के शीर्ष पर बनाए जाते हैं, इसलिए वे एक-दूसरे के समान होते हैं। स्वाभाविक रूप से वे इतिहास का समर्थन करते हैं, और कोड पूरा करने (जहां उचित हो)। – dfan

+2

आपके यहां यहां विरोधाभासी आवश्यकताएं हैं: आप एक आरईपीएल चाहते हैं जो एक ही समय में भाषा के बारे में कुछ भी नहीं जानता है और फिर भी किसी भी तरह से कोड को पूरा करने के लिए भाषा के बारे में जानबूझकर ज्ञान के बारे में जानबूझ कर ज्ञान है। –

+3

मैं इन्हें विरोधाभासी के रूप में नहीं देखता हूं। मैं एक आरईपीएल चाहता हूं जो किसी भी बैकएंड में एक समान इंटरफेस प्रस्तुत करता है। भाषा-जागरूक सामान को प्लग करने योग्य होना होगा, बस इतना ही है। –

उत्तर

31

बैश C-r के बारे में कुछ भी नहीं जानता: यह रीडलाइन का उपयोग करता है, जो इसके साथ-साथ ऊपर तीर इतिहास भी करता है। ऐसा लगता है कि आप जो आरईपीएल खोज रहे हैं वह रीडलाइन है? बस आदेश आप rlwrap साथ से आरईपीएल की तरह व्यवहार चाहते उपसर्ग (इसे स्थापित अगर आप इसे नहीं है - यह बहुत अच्छा है), और तुम जाना अच्छा होना चाहिए।

$ rlwrap java -jar clojure.jar 
+0

ठीक है यह क्लोज प्रतिकृति के लिए अच्छी तरह से काम करता है, लेकिन मुझे किसी कारण से स्कैला प्रतिलिपि में ctrl-r नहीं देता है। ऐसा लगता है कि ghci पहले से ही रीडलाइन का उपयोग करता है, तो यह अच्छा है। संपादित करें: वास्तव में यह क्लोजर प्रतिलिपि में एक * जबरदस्त * अंतर बनाता है - धन्यवाद! –

+0

आरएलड्रैप के लिए +1: मैंने इसे क्लोजर सीखने के लिए उपयोग करना शुरू कर दिया है और इसने इसे और अधिक मजेदार बना दिया है –

+0

यह ctrl-r बिट का उत्तर देने लगता है लेकिन REPL बिट नहीं। आप बस एक कमांड में रीडलाइन जोड़ रहे हैं जो पहले से ही प्रतिलिपि करता है। –

5

स्कैला 2.9 आरईपीएल में सीटीआरएल-आर रिवर्स सर्च सपोर्ट होगा। रात के निर्माण में पहले से ही है। कुछ समय के लिए संदर्भ जागरूकता टैब पूरा हो गया है (हालांकि इसे बेहतर किया जा सकता है)।

rlwrap scala -Xnojline 

कि jline rlwrap के साथ हस्तक्षेप करने से रोकता है:

rlwrap साथ स्केला का उपयोग कर, -Xnojline ध्वज का उपयोग करें। फिर rlwrap कर्सर गति और इतिहास को लागू करने के लिए रीडलाइन का उपयोग करने के लिए स्वतंत्र है, लेकिन इससे पहले कि दुभाषिया लाइन देखता है और आपके पास भाषा-जागरूक पूरा होने की आवश्यकता नहीं होगी

मुझे आशा है कि स्काला आरईपीएल सुधार कर दिया जाएगा।

  • एक प्रेजेंटेशन कंपाइलर है जो 2.9 का हिस्सा है जो मुझे लगता है कि त्रुटियों और समापन को हाइलाइट करने जैसी चीजों के लिए उपयोग किया जाता है।
  • jline स्केला 2 द्वारा इस्तेमाल किया।9 लाभ jansi

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

+0

यह ctrl-r बिट का उत्तर देने लगता है लेकिन REPL बिट नहीं। आप बस एक कमांड में रीडलाइन जोड़ रहे हैं जो पहले से ही प्रतिलिपि करता है। –

2

सख्ती से एक आरईपीएल बोलते समय, Seco एक नोटबुक-शैली खोल प्रदान करता है जो JSR-223 बाध्यकारी के साथ किसी भी भाषा में अभिव्यक्तियों का मूल्यांकन कर सकता है। यह rapidly growing list में जावास्क्रिप्ट, योजना, पायथन, रूबी, क्लोजर, ग्रोवी और प्रोलॉग जैसी भाषाएं शामिल हैं।

सेको की प्रेरणा, Mathematica नोटबुक फ्रंट एंड, सिद्धांत रूप से किसी भी भाषा में अभिव्यक्तियों का मूल्यांकन कर सकती है हालांकि ऐसा होने के लिए some work लगता है।

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