問題タブ [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.
f# - F# Read Eval Print Loop (REPL) を実装するにはどうすればよいですか?
ライブ デバッグ用に F# REPL をアプリケーションに追加したいと考えています。(F# インタラクティブ)のソース コードを見ているfsi.exe
と、F# コンパイラの内部を突っ込んでいるように見える大量の処理が行われています。このため、この同じコードをアプリケーションのコンテキストでコンパイルすることはできません。
F# REPL をどこかに実装する簡単な例はありますか? これがかなり簡単になることを望んでいたでしょう。
windows - WindowsでのClojureREPL
Clojureを学びたいのですが、毎回完全なIDEを開くのではなく、例をすばやくハッキングするための適切なREPLを開くバッチファイル(または同様のもの)を用意したいと思っています。(つまり、Emacs / Netbeans / Eclipse IDEのディスカッションを探していません)。
たとえば、これは最も基本的なREPLを起動します。
そして、jlineファイルとclojure-contrib jarファイルをclojureディレクトリに追加すると、
windows - USBドライブからのClojure REPL
私は今、Clojure を学ぼうとしていますが、今週末は両親のところへ行きます。彼らは Windows ラップトップを持っていますが、私は何もインストールしたくありません... USB ドライブにインストールされたファイルだけで Clojure REPL を実行することは可能ですか?
documentation - Common Lisp REPL で docstring やその他のシンボル情報を表示するには?
私は CL にまったく慣れていないので、ドキュメンテーションの文字列を読み、REPL から他のヘルプ情報を取得する方法を学びたいと思っています。help(symbol)
Python、symbol?
iPython、または:t
Haskell:i
の GHCi のようなものです。
したがって、シンボル名が与えられたら、次のことを知りたいです。
- バインドされている値の種類 (もしあれば) (関数、変数、まったくなし)
- 関数またはマクロの場合、その位置引数は何ですか
- docstring がある場合は、それを表示します
- どのパッケージまたはファイルから来ているのか、いつ定義されたのか
があることがわかりましたが(documentation '_symbol_ '_type_)
、それはまさに私が必要としているものではありません。を使用する前に、シンボルがバインドされている値の型 ( 'function
、'variable
、'compiler-macro
など) を知る必要がありますdocumentation
。次に、docstring のみを返します。シンボルが欠落しているか、シンボルを使用するには不十分である可能性があります。
たとえば、Lisp では、ヘルプmapcar
はあまり役に立ちません (CLisp の REPL):
代わりに、次のようなものを見たいと思います。
clojure - 別のプロセスからClojure REPLプロセスと対話する方法はありますか?
フォームを開始する REPL セッションに送信する Vim プラグインを作成できるかどうか疑問に思っていlein repl
ます。既存の jline.ConsoleRunner プロセスにメッセージを送信する方法はありますか?
python - Pythonコンソールにファイルをロードするにはどうすればよいですか?
Pythonコンソールに継続的にコピー/貼り付けしているPythonコードの行がいくつかあります。コマンドなど実行できるものはありload
ますか?例えばload file.py
c++ - 入力を端末の出力と同期させる方法は?
カスタムスクリプト言語用のLinuxシェルを作成していますが、ユーザーが1つのステートメントを入力する各フォローアップ行の前に「...」を出力します。最初の行には「>>>」が出力されます。 、入力を待ちます。次に例を示します。
で行をfgets
読んでいて、完全に読んだ後、「...」を出力し、。への別の呼び出しを使用して繰り返しますfgets
。これは、適度に高速なインタラクティブ入力で問題なく機能します。しかし、改行を含むコードをターミナルに貼り付けると、次のようになります。
fflush
「...」は、に印刷した後に呼び出しを送信しても、印刷が遅すぎますstdout
。この仕事をするために何か特別なことをする必要があるかどうか誰かが知っていますか?
scala - ScalaのREPLで前方削除としてctrl-dを使用する方法はありますか?
したがって、Scala REPL では、ctrl-{p,n,a,e} を使用して、前、次、行頭、および行末を実行できます。ただし、ctrl-d を使用して前方削除できないと、すぐに気が狂ってしまいます。
何らかの方法でこれを達成することは可能ですか?
私はMacを使用しています。
アップデート
受け入れられた回答に次の行を追加して、ctrl-{a,e} を取得します。より大きなキーバインド ファイルは、GitHub の jline2 リポジトリ jline2 リポジトリにあります。
Update2
Scala 2.9.0.final をインストールしたところ、ctrl-d が正常に機能していることを確認できます。シェルを終了するときに空行でない限り、前方削除です。
clojure - clojure REPL は、defrecord に加えられた変更を取得しません
私はライニンゲンプロジェクトをセットアップしています。Clojure ソース ファイルの 1 つで、いくつかのレコードを定義しました。私のワークフローは通常、emacs を起動して「lein swank」REPL に接続することです。REPL に接続したら、適切な名前空間に切り替えてファイルを Cc Ck します。これで、REPL とファイル内のコードの操作を開始できます。しかし、そのファイルのレコードに変更を加えて Cc Ck しても、REPL は変更を反映しません。
したがって、現状では、レコードに変更を加える必要があるたびに、lein swank プロセスを停止して再起動し、emacs から再接続する必要があります。これは非常に急速に古くなります。私は何が欠けていますか?Cc Ck の代わりに Cc Cl を試しましたが、うまくいきません。プロジェクトルートの「クラス」ディレクトリを削除しようとしましたが、それもダメです。
洞察や推奨事項をいただければ幸いです。
また、余談ですが、私は常にレコードが定義されている名前空間で作業しています。
編集:私は実際に defrecord のプロトコルの実装を変更しています。それを変更して Cc Ck を使用してコンパイルし、REPL に新しいレコードを作成すると、REPL はまだ古いプロトコル実装を使用しています。