【发布时间】:2016-04-08 07:07:09
【问题描述】:
使用 Emacs Slime,我如何访问 REPL 中最后一个表达式返回的对象或值?
在 ipython 中它是 _,因此如果返回值符合我的预期,我可以将它保存在一个变量中。
史莱姆有类似的东西吗?
【问题讨论】:
标签: emacs lisp common-lisp read-eval-print-loop slime
使用 Emacs Slime,我如何访问 REPL 中最后一个表达式返回的对象或值?
在 ipython 中它是 _,因此如果返回值符合我的预期,我可以将它保存在一个变量中。
史莱姆有类似的东西吗?
【问题讨论】:
标签: emacs lisp common-lisp read-eval-print-loop slime
除了verdammelts answer,您还可以从repl 复制和粘贴对象。例如,请参阅this 文章(我写的)中的第三张图片。有关更多信息,您应该查看 Slime 手册的presentations 部分。
【讨论】:
Common Lisp 定义了一些变量,这些变量绑定了之前的形式及其值。它们是:
*, **, *** 最近的主要值。/, //, /// 最近的值(每一个都是一个列表)。+, ++, +++ 最近的表格。每次在 REPL 中评估表单时都会绑定这些变量(这是 Slime 所做的)。 *、/ 和 + 绑定了之前的主值、值和形式。 **、// 和 ++ 绑定到 *、/、// 的先前值。 ***、/// 和 +++ 绑定了 **、//、++ 的先前值。
Lisp 中的函数可能返回多个值;因此,* 保存主要(第一个)值和 / 保存所有值的列表之间的区别。
【讨论】: