在 Slime 中,我想清除我当前输入到 REPL 顶行中的输入。什么是捷径?
例如,如果我输入以下内容,它会缺少一个括号并且不会执行。如何简单地从输入行中清除整个文本?即不必在每个字符上手动按删除
(let* ((x 5) (y (+ x x))
(print y))
Run Code Online (Sandbox Code Playgroud)
我在这里找不到任何东西:https : //common-lisp.net/project/slime/doc/html/REPL-commands.html
这些解决方案似乎不同(但如果我错了,请纠正我)并且与整个屏幕相关,而我有兴趣清除我输入但尚未评估的内容:
这个问题是Common Lisp 范围的扩展(动态 vs 词法)
我已经阅读并(希望)理解了 Common Lisp 中范围和范围的概念(链接:https : //www.cs.cmu.edu/Groups/AI/html/cltl/clm/node43.html),但我是无法理解以下三个示例。所有示例都在 SBCL/Slime/Emacs 中的新 lisp 会话上运行。
示例 1:打印 5 和 5
(defvar x 100)
(defun fun1 (x)
(print x)
(fun2))
(defun fun2 ()
(print x))
(fun1 5)
Run Code Online (Sandbox Code Playgroud)
示例 2:打印 5 和 100
(defun fun1 (x)
(print x)
(fun2))
(defun fun2 ()
(print x))
(defvar x 100)
(fun1 5)
Run Code Online (Sandbox Code Playgroud)
示例 3:打印 5 & 5 & 100
(defvar x 100)
(defun fun1 (x)
(print x)
(fun2))
(defun fun2 …Run Code Online (Sandbox Code Playgroud)