Common Lisp重命名命名空间的方法

时间:2012-10-03 14:26:35

标签: common-lisp

将命名空间重命名为其他内容的常见lisp方法是什么。所以不要写hunchentoot:start我可以写ht:start。

我正在寻找类似pythons导入A作为B的东西。

编辑:使用接受的答案,为hunchentoot添加昵称的代码如下:

(rename-package :hunchentoot :hunchentoot '(:ht))

2 个答案:

答案 0 :(得分:9)

您称之为命名空间的是使用defpackage

创建的Common Lisp包

您希望包昵称为ht

在现有软件包上执行defpackage具有实现定义的行为,但某些实现允许以这种方式添加昵称。

还有一个函数rename-package可以重命名并将昵称添加到包中。

答案 1 :(得分:1)

我用这个:

(defpackage :foo+bar
  (:use :bar)
  (:export
   #:*foo* #:foo #:foo-p #:foo-ffs!
   . #.(let (ext)
         (do-external-symbols (sym :bar)
           (push (symbol-name sym) ext))
         ext)))