(defpackage #:foo
(:use :cl)
(:export #:bar
#:baz))
(in-package #:foo)
하고 내 말은
(defpackage :foo
(:use :cl)
(:export :bar
:baz))
(in-package :foo)
의 차이 것입니다. "#"문자를 사용해야합니까? 이 모든 상징들은 일치하지 않습니다. 맞죠?
(defpackage #:foo
(:use :cl)
(:export #:bar
#:baz))
(in-package #:foo)
하고 내 말은
(defpackage :foo
(:use :cl)
(:export :bar
:baz))
(in-package :foo)
의 차이 것입니다. "#"문자를 사용해야합니까? 이 모든 상징들은 일치하지 않습니다. 맞죠?
:foo
은 키워드 기호의 구문이고 #:foo
은 기호가없는 기호의 구문입니다. 기호가 주로 문자열 이름 (예 : defpackage
및 in-package
)을 가져 오는 데 사용되는 경우에는 기호가없는 기호를 사용하는 것이 좋습니다. 여기
에서 그것을 인턴 방법에 대해 설명합니다.
감사합니다. 대답. 이 링크는 http://stackoverflow.com/questions/7894548/why-are-uninterned-symbols-used-for-package-names-and-exports-in을 보여주기 때문에 이름없는 공간에서 충돌을 피하기 위해 uninterned symbols을 채택 할 것입니다. -common-lisp. 나는 더 나은 접근법이라고 생각한다. – csgui
대답은 다음과 같습니다. http://stackoverflow.com/questions/7894548/why-are-uninterned-symbols-used-for-package-names-and-exports-in-common-lisp –