【问题标题】:Common Lisp package definitionCommon Lisp 包定义
【发布时间】:2011-12-24 09:49:02
【问题描述】:

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

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

(in-package #:foo)

和

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

(in-package :foo)

我的意思是。什么时候必须使用“#”字符?所有这些符号都是非内部的,对吧?

【问题讨论】:

标签: package common-lisp


【解决方案1】:

:foo 是关键字符号的语法,#:foo 是非内部符号的语法。当一个符号主要用于获取作为其名称的字符串时(如defpackage 和in-package),我更喜欢使用非内部符号。

以下是其他选项:

  • 使用关键字符号;我不喜欢这个实习生关键字符号出现在适当的地方和其他地方的方式
  • 使用字符串;我不喜欢这无端打破 Allegro 的“现代”模式
  • 使用普通符号;我不喜欢这既是一个符号的实习生方式,也是一个可能是随机包中的实习生的方式

你或其他人使用哪种风格是个人喜好问题。

【讨论】:

猜你喜欢
  • 2020-08-01
  • 2012-07-12
  • 1970-01-01
  • 1970-01-01
  • 2022-11-16
  • 1970-01-01
  • 2020-03-27
  • 1970-01-01
  • 2015-05-10
相关资源
最近更新 更多