微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 Common Lisp 中名为 Quri 的替代库获得相同的 puri:uri-parsed-path 输出?

如何解决如何使用 Common Lisp 中名为 Quri 的替代库获得相同的 puri:uri-parsed-path 输出?

使用 CL (SBCL) 和 Puri 库,我获得了 Slime 的 REPL:

CL-USER> (puri:uri-parsed-path  (puri:parse-uri "http://www.gnu.org/software/emacs/manual/html_node/emacs/index.html"))

(:ABSOLUTE "software" "emacs" "manual" "html_node" "emacs" "index.html")

我正在尝试使用 Quri 而不是 Puri 来实现相同的输出(包含 URL 路径中拆分词的列表)。

不幸的是,我没有实现它。我试过quri-parse-path

CL-USER> quri-object
#<QURI.URI.HTTP:URI-HTTP http://www.gnu.org/software/emacs/>
CL-USER> (quri:parse-path (quri:uri-path quri-object))
"/software/emacs/"
0
16

库是否已经支持此操作?

我不确定是否只能通过阅读 Quri 的文档来实现。不过,我仍然是 CL 的菜鸟。

解决方法

我建议获取uri路径,并用“/”分割:

(quri:uri "http://www.gnu.org/software/emacs/manual/html_node/emacs/index.html")
#<QURI.URI.HTTP:URI-HTTP http://www.gnu.org/software/emacs/manual/html_node/emacs/index.html>

(quri:uri-path *)
"/software/emacs/manual/html_node/emacs/index.html"

(ql:quickload "str")
(str:split "/" * :omit-nulls t)
("software" "emacs" "manual" "html_node" "emacs" "index.html")

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。