5

REPLで演算子を入力すると、入出力履歴と関係のある値に展開されることがよくあります。

具体的に私はそれに気づきました:

  • +++...前の入力に展開します。
  • ***...前の出力に展開します。
  • -現在の入力に展開

明らかにもっとあります(/何かに拡張しますが、私はそれを正確に理解していません)。

clispドキュメントを閲覧しようとしましたが、失敗しました。

私の質問:

  • そのような魔法のREPL変数もありますか?彼らは何をしますか?
  • N番目の入力または出力(IPythonInOut配列など)にアクセスする方法はありますか?
4

2 に答える 2

7

REPL変数は、Hyperspecの環境ディクショナリに文書化されています(「変数」を検索してください)。この規格では、3つを超える入出力を保持する必要はなく、それを実行する実装については知りません。

于 2012-01-02T10:51:34.490 に答える
3

他の回答で述べたように、これらの変数はANSICommonLisp標準で文書化されています。

それに加えて、CommonLispの実装には他にもたくさんの機能があるかもしれません。ユーザーインターフェイスを備えたフル機能のトップレベルは、「Lispリスナー」と呼ばれることがよくあります。

CLISP実装は、デバッガーに追加のコマンドを提供します。そのドキュメントの第25章を参照してください。

LispWorksにはREPLにいくつかの拡張機能があり、リスナーも提供します。ここではいくつかの例を示します。

CL-USERパッケージのインタラクション番号2:

CL-USER 2 > (* 3 4)
12

同じですが、外側の括弧を省略できます。

CL-USER 3 > * 3 4
12

インタラクション2をやり直しましょう:

CL-USER 4 > :redo 2
(* 3 4)
12

相互作用2をやり直しましょう。ただし、乗算ではなく除算を使用します。

CL-USER 5 > :use / * 2
(/ 3 4)
3/4

コマンド、出力履歴、または同様の機能などの拡張機能を備えた他の実装は、たとえばAllegroCLやClozureCLです

GNU Emacsに基づくCommonLisp開発環境を提供するSLIMEは、拡張REPLも提供します。

于 2012-01-02T11:29:03.023 に答える