Common Lisp:如何将URL包含为列表的元素?

时间:2015-11-14 14:19:40

标签: lisp common-lisp

我想创建一个包含URL的列表,如下所示:

(setf assertion '(BookStore targetNamespace http://www.books.org))

但是这会导致出现此错误消息:

Error in READ [or a callee]: There is no package with the name HTTP.

为什么网址会产生错误?

如何将网址列为列表元素?

2 个答案:

答案 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"的包中,没有包含此名称的包。