CLISP'中的神奇变量是什么;答复是什么?

CLISP'中的神奇变量是什么;答复是什么?,lisp,common-lisp,read-eval-print-loop,clisp,interactive-mode,Lisp,Common Lisp,Read Eval Print Loop,Clisp,Interactive Mode,我注意到,当我在REPL中键入运算符时,它通常会扩展为一个与输入/输出历史有关的值 我特别注意到: ++,++。。。扩展到以前的输入 *,***。。。扩展到以前的输出 -展开到当前输入 显然还有更多(/扩展到某些方面,但我还没有完全弄清楚) 我尝试浏览clisp文档,但没有成功 我的问题是: 还有哪些神奇的REPL变量?他们是干什么的 是否有办法访问第n个输入或输出(如IPython的In和Out数组) REPL变量记录在(搜索“变量”)中。该标准不需要保存超过三个的输入/输出,我也不知道

我注意到,当我在REPL中键入运算符时,它通常会扩展为一个与输入/输出历史有关的值

我特别注意到:

  • ++
    ++
    。。。扩展到以前的输入
  • *
    ***
    。。。扩展到以前的输出
  • -
    展开到当前输入
显然还有更多(
/
扩展到某些方面,但我还没有完全弄清楚)

我尝试浏览clisp文档,但没有成功

我的问题是:

  • 还有哪些神奇的REPL变量?他们是干什么的
  • 是否有办法访问第n个输入或输出(如IPython的
    In
    Out
    数组)

REPL变量记录在(搜索“变量”)中。该标准不需要保存超过三个的输入/输出,我也不知道有任何实现可以做到这一点。

如其他答案中所述,这些变量记录在ANSI通用Lisp标准中

除此之外,一个常见的Lisp实现可能还有许多其他特性。一个具有用户界面的功能齐全的顶层通常被称为“Lisp侦听器”

CLISP实现在调试器中提供了其他命令。见其文件的附件

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
其他具有扩展(如命令、输出历史记录或类似功能)的实现包括例如和Clozure CL


SLIME提供了一个基于GNU Emacs的通用Lisp开发环境,它还提供了一个扩展的!我不知道IPython的
In
Out
数组,谢谢!它还有速记
\uu
\u
。。。这意味着
Out[-1]
Out[-2]
等。