lisp - 输入命令时自动重新加载 LISP 中的文件

标签 lisp

我正在为类(class)学习 LISP。我在 Ubuntu 中设置了基本的工作流程,在 VIM 中设置了 LISP 文件,并在终端中设置了交互式 LISP 提示符,我用它来在编写代码时测试代码。有没有办法让 LISP 在每次输入命令时加载特定文件?必须不断输入 (load 'initial-code.cl) (是的,即使我正在使用终端的历史记录),这有点累。

最佳答案

总是可以尝试:

(let (fn)
  (defun l (&optional filename)
    (if filename
      (setf fn filename))
    (load fn)))

工作原理如下:

[2]> (l "x.lisp")
;; Loading file x.lisp ...
;; Loaded file x.lisp
T
[3]> (l)
;; Loading file x.lisp ...
;; Loaded file x.lisp
T
[4]> 

非常简单。

您还可以执行以下操作:

(defun go ()
  (load "project.lisp")
  (yourfunc 'your 'parameters))

然后您只需键入 (go),它就会重新加载您的文件并调用您的主入口点。

或者甚至将它们组合起来:

(defun gogo (&rest args)
    (l) ;; call (l "file.lisp") first to initialize it
    (apply #'yourfunc args))

然后您可以轻松更改参数

(gogo 1 2)
(gogo 2 4)

你知道,这是口齿不清的。不喜欢某些东西,就改变它。

有了更多时间,您就可以编写一个简单的包装器来动态构建它们。但你明白了。

关于lisp - 输入命令时自动重新加载 LISP 中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7433146/

相关文章:

data-structures - 不能在 Clojure 的库级别有效地实现 cons 单元吗?

list - 从 Scheme 中的列表中删除元素

multithreading - 如何构建在racket lisp 引擎中使用的程序?

ubuntu - 如何在 Ubuntu 中的 CLISP 下包含 "port"包

list - 为什么我的 lisp 函数返回 'NIL'

garbage-collection - 在函数式语言中使用大型数据结构时减少垃圾收集时间

lisp - 在 Common Lisp 中查找嵌套列表的平均值

lisp - 一次为一个变量分配随机值并在 LISP 中使用该信息

lisp - 从 REPL 获取代码

lisp - mapcar lisp 的替代品