它们在Common Lisp包的上下文中有什么区别?我正在阅读SLIME文档,有些命令广泛提及。
答案 0 :(得分:7)
语法是什么?您export
的符号是外部符号。
(in-package :cl-user)
(defpackage str
(:use :cl)
(:export
:trim-left
))
(in-package :str)
;; exported: can be accessed with `str:trim-left`.
(defun trim-left (s)
"Remove whitespaces at the beginning of s. "
(string-left-trim *whitespaces* s))
;; forgot to export: can still access it with `str::trim-right`.
(defun trim-right (s)
"Remove whitespaces at the end of s."
(string-right-trim *whitespaces* s))
答案 1 :(得分:4)
Common Lisp包的作者可以为包的用户导出符号。然后该符号是外部符号,您可以使用package-name:external-symbol-name
访问它。
内部符号不适合用户,但可以使用package-name::symbol-name