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