【问题标题】:How to exit the package that I'm just using in common lisp?如何退出我只是在 common lisp 中使用的包?
【发布时间】:2011-12-21 14:28:02
【问题描述】:

我定义了一个包

 [10]> (defpackage :abc)
 #<PACKAGE ABC>
 [11]>

我用那个包

 [15]> (in-package :abc)
 #<PACKAGE ABC>
 ABC[16]>

如何退出ABC[16]到[17]?

谢谢~

【问题讨论】:

    标签: package common-lisp


    【解决方案1】:

    严格来说,您不使用带有in-package 的软件包,但您 设置当前包。要使用包,您必须使用 use-package

    回到你的问题,你已经定义了一个新包(没有使用:cl 所以你必须使用(cl:+ 1 2) 做一个加法)并将其设置为 当前包。 COMMON-LISP-USER 又名 CL-USER 是 启动 lisp 系统时的当前包,以便将其取回 你只需要做(cl:in-package :cl-user)

    Here 是一个关于 Common Lisp 包的不错的教程。 This chapter 在PCL中也很不错。但引用仍然是CLHS

    【讨论】:

    • 或者,确实是(cl:in-package :cl-user)
    【解决方案2】:

    您应该通过(in-package :cl-user) 回到:cl-user 包。 Common Lisp 包对于新手来说通常有点混乱。我还建议您阅读包裹上的Erann Gat's tutorial。 按照惯例,对于一个严肃(即大)的程序,人们倾向于在一个单独的文件中定义包定义,其中包括(defpackage :foo ... ),而真正的代码进入另一个通常以(in-package :foo)开头的文件。然后借助像ASDF 这样的系统定义工具,该文件由 包定义在实际文件之前被评估和加载。 根据我的拙见和经验,解决包之谜的最简单方法是在快速教程之后阅读由经验丰富的 lispers 开发的实际代码。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-02
      • 1970-01-01
      • 2020-12-18
      • 1970-01-01
      • 2013-12-07
      • 1970-01-01
      相关资源
      最近更新 更多