【问题标题】:Automatically Reload a File in LISP When a Command Is Entered输入命令时自动重新加载 LISP 中的文件
【发布时间】:2011-09-15 15:09:08
【问题描述】:

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

【问题讨论】:

    标签: lisp


    【解决方案1】:

    可以试试:

    (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)
    

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

    随着时间的推移,您可以编写一个简单的包装器来即时构建这些。但你明白了。

    【讨论】:

      【解决方案2】:

      大多数 Lisp 程序员会鼓励你使用 SLIME

      如果你喜欢 Eclipse,还有一个Lisp plugin

      我知道这并不能真正回答你的问题,但至少你可以知道一些替代方案。

      【讨论】:

        【解决方案3】:

        你可以试试slimv,它就像 vim 的粘液。

        【讨论】:

          猜你喜欢
          • 2013-05-23
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-07-23
          • 1970-01-01
          • 2021-04-24
          • 2021-07-09
          相关资源
          最近更新 更多