我想创建一个包含URL的列表,如下所示:
(setf assertion '(BookStore targetNamespace http://www.books.org))
但是这会导致出现此错误消息:
Error in READ [or a callee]: There is no package with the name HTTP.
为什么网址会产生错误?
如何将网址列为列表元素?
答案 0 :(得分:7)
表达式http://www.books.org
尝试在symbol
//www.books.org
中找到package
http
。有关包的更多信息,请阅读Practical Common Lisp中的章节。
您只需将项目作为字符串添加到列表中。
答案 1 :(得分:5)
不要将符号用作字符串,这不是一个好主意。只需使用字符串。
(defvar *assertion* (list "BookStore" "targetNamespace" "http://www.books.org"))
URL产生错误,因为:用于访问指定包中的符号,就像它对你说的那样。所以你只需告诉编译器找到符号" // www.books.org"在名为" http"的包中,没有包含此名称的包。