是否有通用的lisp包命名约定?

是否有通用的lisp包命名约定?,lisp,common-lisp,Lisp,Common Lisp,我已经创建了一些自己的用户包,并且遇到了名称冲突 在Java中,命名约定是在包名中使用域名: e、 g.import com.example.somepackage 对于常见的lisp包,是否有任何广泛使用的包命名约定 问候, Russell我使用的惯例是使用一个独特的词:salza、skippy、zs3等等。我并没有真正尝试与库功能有直接关系。我尽量避免使用其他人可能使用的通用词,如“zlib”、“zip”或“png” 埃迪·韦茨用弗兰克·扎帕(Frank Zappa)相关的词来命名他的许多软

我已经创建了一些自己的用户包,并且遇到了名称冲突

在Java中,命名约定是在包名中使用域名: e、 g.import com.example.somepackage

对于常见的lisp包,是否有任何广泛使用的包命名约定

问候,


Russell

我使用的惯例是使用一个独特的词:salza、skippy、zs3等等。我并没有真正尝试与库功能有直接关系。我尽量避免使用其他人可能使用的通用词,如“zlib”、“zip”或“png”

埃迪·韦茨用弗兰克·扎帕(Frank Zappa)相关的词来命名他的许多软件包:Hunchentoot、Drakma等

有些人使用Java风格的org.foo.bar反向域命名


因此,直接的答案是否定的,没有一个大家都使用的共同约定。

您有时会看到的一个约定是在常规实现但非标准化的功能上提供瘦兼容性包装的包通常被称为
琐碎的东西


这就引出了一些非常好的名称:以独立于实现的方式使用
*功能*
的库被称为;更好的是,以标准化方式与垃圾收集器交互的库被称为。

没有一般惯例,但有几种模式:

  • 当库是来自其他语言、包装器或接口库的端口时,它通常以
    cl-
    作为前缀,如
    cl-gtk2
    cl-ppcre
    。虽然有一段时间,当这个前缀被滥用时,有很多包(例如,
    cl-who
    )实现了一个独特的功能,但仍然使用它
  • 如果包是特定于实现的,那么它的前缀是实现速记(最明显的是:
    sb-
    ),比如
    sb queue
    lw compat
  • 如果包是实现之间的一个兼容层,那么它的前缀通常是
    普通-
    ,比如
    普通回溯
    普通垃圾
  • 还有
    s-
    前缀,可能代表“符号”,如
    s-xml
    ,但很少使用
  • 这些前缀有助于使包的名称唯一,从而简化在web上查找有关包的信息

    除此之外,没有具体的约定,但一般的规则是倾向于简短、唯一,可能还有描述性的名称。为了便于记忆、使用和查找信息


    如果软件包的名称很长,那么提供一个较短的昵称就很方便了,因为人们通常会使用由其名称限定的软件包符号。例如,在我的代码中,我在
    cl-ppcre
    中添加了一个昵称
    re
    ,这使客户机代码更容易理解和清晰。尽管需要小心,这样昵称就不会引起名字冲突。

    谢谢你的回答。这证实了我从我使用过的几个软件包中观察到的情况——除了使用Frank Zappa相关的词:)。别忘了Drew Crampsie的背景词,比如行上的lisp。我个人不喜欢lisp名称中的点。