6

将命名空间重命名为其他名称的常见 lisp 方法是什么。因此,我可以写 ht:start,而不是写 hunchentoot:start。

我正在寻找类似 pythons import A as B 的东西。

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

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

2 回答 2

9

你所说的命名空间是一个使用创建的 Common Lisp 包defpackage

您希望包裹昵称是ht

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

还有一个功能rename-package可以为包重命名和添加昵称。

于 2012-10-03T15:10:12.870 回答
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)))
于 2012-10-18T00:36:31.037 回答