Common Lisp包定义

csg*_*gui 7 common-lisp package

在Common Lisp包定义中,有什么区别

(defpackage #:foo
    (:use :cl)
    (:export #:bar
        #:baz))

(in-package #:foo)
Run Code Online (Sandbox Code Playgroud)

(defpackage :foo
    (:use :cl)
    (:export :bar
       :baz))

(in-package :foo)
Run Code Online (Sandbox Code Playgroud)

我的意思是.当我必须使用"#"字符?所有这些符号都是不受干扰的,对吧?

Xac*_*ach 10

:foo是关键字符号#:foo的语法,是未加密符号的语法.当一个符号主要用于获取其名称的字符串(如defpackagein-package)时,我更喜欢使用未分隔的符号.

以下是其他选项:

  • 使用关键字符号; 我不喜欢这种实习关键字符号如何出现在apropos和其他地方
  • 用一个字符串; 我不喜欢这样无偿地打破了Allegro的"现代"模式
  • 用一个简单的符号; 我不喜欢这两个内容如何实现符号,以及它如何在一个可能随机的包中实现它

或其他人使用哪种风格是品味问题.