問題タブ [read-eval-print-loop]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - emacs バッファを任意の Python プロセスに送信する
私はこのpython-send-buffer
コマンドが好きですが、アプリケーションに組み込まれた Python を頻繁に使用するか、カスタム パッケージ管理システムを介して Python を起動します (特定の依存関係で Python を起動するため)。便利な Python インスタンス (python-send-buffer
依存するもの)
私が達成したいことは次のとおりです。
- 任意の Python インタープリター (または Python コードを評価できるアプリケーション) で、
magic_emacs_python_server.py
モジュールをインポートします (必要に応じて追加しますsys.path
) 。 - emacs で実行します。
magic-emacs-python-send-buffer
これにより、リモート Python インスタンスのバッファが評価されます。
それは非常に単純なはずです.Pythonモジュールはスレッド内のソケットをリッスンします。メインスレッドで評価し、repr()
結果を返します(または、stdout/stderr、またはその両方をキャプチャします)。emacs モジュールは、テキストをソケットに送信し、応答の文字列を待って、それをバッファに表示します。
このような単純なものはすでに存在しているに違いないように思えます... IPython にはipy_vimserver
がありますが、これは間違った方法です。またswank
、非常に Lisp 固有のように見えますが、私が望むものと非常によく似た Javascript バックエンドがあります... しかし、検索してもほとんど何も見つかりません。SLIME は非 Lisp 言語
要するに:
- コードを emacs バッファから既存の Python プロセスに送信するプロジェクトは存在しますか?
- そうでない場合、そのようなことをどのように書くことをお勧めしますか (elisp にはあまり詳しくありません) - SWANK? IPython のサーバー コード? ゼロからの単純な TCP サーバー?
node.js - node.js-ライブプロセスへの評価
誰かが既存のnode.jsREPLを使用して自分のためにこのようなものを設定しましたか?私はそれを行うための迅速な方法を考えていませんでした。
私が今日それをする方法はemacsとこれを使うことです: https ://github.com/ivan4th/swank-js
このモジュールは次のもので構成されています。
emacsへのSLIME-jsアドオンは、js2-modeと組み合わせて、関数defの本体のどこかにCMxを発行するだけで、関数の文字列を.に送信します。
Node.jsで記述されたSwank-jsサーバー(はい、ローカルマシンからリモートプロセスに直接評価できます)-評価した関数の文字列を受け取り、実際に評価します
ブラウザを使用してそのサーバーの別のポートに接続し、そのブラウザでDOMを操作できるようにする全体(これは非常に素晴らしいですが、関連性はありません)
私のソリューションはemacs側でSLIME-jsを使用しており、app.jsファイルにrequire('swank-js')があります
今..私は私の解決策または他の可能なものに関していくつかの問題と質問があります:
Q1:これはやり過ぎですか?誰かがnanoから彼のライブプロセスにものを評価する秘密の方法を持っていますか?
Q2:swank-jsの評価方法を変更する必要がありました。次のような黒魔術を使用しました。
私が理解している限り、これはグローバル変数を新しいコンテキストにコピーするだけであり、evalを実行しても、元の関数定義は変更されません-SOOO..私は単純な「eval」とITWORKSを使用しています。
これについて何かコメントはありますか?
Q3:関数を再評価するには、それがGLOBAL関数である必要があります-すべての関数定義をグローバル(clojureのような)として持つのは悪い習慣ですか?これを行う別の方法があると思いますか?
objective-c - Objective-CのREPL
Objective-CのREPLはありますか?
私はObjective-Cを学んでいて、Pythonのバックグラウンドから来たREPLをひどく見逃しています。
macos - ClojureREPLはOSXではdoseq出力の印刷でスタックしますが、Linuxではスタックしません
コマンドを使用して、Snow LeopardOSXマシンとUbuntuLinuxボックスの両方でClojure1.2を実行していますlein repl
。enliveチュートリアルhttps://github.com/swannodette/enlive-tutorial/を実行しています
「ThirdScrape」チュートリアルに到達して次のコマンドを実行すると、次のようになります。
Ubuntuでは期待どおりに動作しますが、OS Xでは、最初のストーリーのみを出力し、数値、(println "hello world")などの式を入力した後にのみ、残りのストーリーを出力します。バッファが出力を完全にフラッシュしていないかのように、REPLがOSXで動作している方法について何か奇妙なようです。
doseq
関数でマクロが使用されていることに気付きましたprint-stories
。だから私がこれを行うと:
私はOSXでこの出力を取得します:
これは最初のアイテムにすぎません。次に0
(または任意の有効な式)を入力してReturnキーを押すと、残りの出力が得られます。
また、この動作に一貫性がないことにも気づきました。時々、何も出力されないので、タイプする0
か何かでそれをフラッシュして入力することができます。場合によっては、すべての出力が適切にフラッシュされます。
誰かアイデアはありますか?
ruby - なぜREPLスタイルの開発がRubyでより一般的ではないのですか?
LispおよびClojureプログラマーは、REPLで直接プログラムを開発することが多いようです。cf. Clojure開発:IDEまたはREPL?
私の質問は、なぜこのアプローチがRubyでより一般的ではないのかということirb
です。これは単なる文化的な違いですか、それともREPL中心の開発がRubyやPythonなどの言語よりもLispで一般的であるという構造的(言語固有の)理由がありますか?
c++ - REPL / LINQpad / F#C ++ 0xのインタラクティブな代替手段?
C#とF#のコードを開発するときに、LINQpadとFSIを使用するのが大好きです。Haskellには、ハグを使用しました。そしてもちろん、スクリプト言語にはほとんどの場合REPLが付属しています。最近のほとんどすべてのブラウザには、かなり凝ったjavascript repl/ideが付属しています。
C ++ 0xに似たものはありますか?
きちんとした機能は次のようになります。
- 既存のコードを含める/リンクすることができます
- コンパイルサイクルは短くて速いです。1秒かかるのは問題ありませんが、数分かかるのは問題ありません。
- オートコンプリート/インテリセンスなどがいいでしょう、または少なくともまともなgoogle-this-function-for-me keyshortcut
- 少なくとも部分的なC++0xサポート。
私は主にWindowsを使用していますが、新しいディストリビューションごとに1337時間を必要としない優れたツール(つまり、ほとんどのemacs構成ではない)がLinuxにある場合は、それらについても聞きたいと思います。
関連: C ++インタープリター/コンソール/スニペットコンパイラ(2年前、Linuxに焦点を当てた)
編集:完全に無関係ではないことに注意してください。これを使用して、とりわけC ++ 0xの感触をつかみたいと思います。可能な限り、C ++0xのサポート(少なくともオートとラムダ)があればいいのですが。 。私は、急速な開発環境ほど、ステートメントごとの担当者を探していません。
.net - Clojure REPL を既存の .NET アプリケーションに追加するには?
インタラクティブな Clojure REPL を既存の .NET アプリケーションに追加して、ライブ デバッグ支援として使用するにはどうすればよいですか? (理想的には、これは C# REPL ですが、それらは多少ずれています (おそらく .NET 5.0?) 私が最後に聞いたのは: http://channel9.msdn.com/blogs/pdc2008/tl16 )
GitHub にClojure-CLRプロジェクトがあることは知っていますが、Clojure-CLR REPL を既存のアプリケーションに統合するためのガイドまたは単純なライブラリを誰かがすでに考え出しているのではないでしょうか?
shell - ScalaのREPLタブ補完を、行全体ではなく列を読み取るようにしますか?
Scala REPLのタブ補完の出力は、新しい行を開始する前に項目を左から右にソートして、行全体を読み取ります。これは私にはぎこちなく感じます。新しい列を開始する前に、上から下に並べ替えられたリストを読むことに慣れています。代わりに、列を読み取るように出力を変更する方法はありますか?
clojure - REPL を終了する方法
REPL を終了しようとしています。
(. System exit 0)
orを使用(System/exit 0)
していますが、エラーが発生します。
REPL を終了する別の方法はありますか? このエラーを解決するにはどうすればよいですか?
r - 「ワークスペース イメージの保存」を無効にする方法 Rでプロンプト?
インタラクティブな R シェルを終了すると、毎回煩わしいプロンプトが表示されます。
作業を保存したい場合は、終了する前に保存するので、私は常に「いいえ」と答えています。
プロンプトを取り除く方法は?
注: を参照してください?save.image