Common lisp 如何在Quicklisp中获取软件包文档

Common lisp 如何在Quicklisp中获取软件包文档,common-lisp,quicklisp,Common Lisp,Quicklisp,每次使用Quicklisp时,我都感觉自己在玩彩票。我找不到包含包列表和文档的网页 作为一个具体的例子,我在CL中搜索了(ql:system apropos“random access list”),因为If基于Okasakis纯功能数据结构。我尝试了以下方法: [1]> (ql:system-apropos-list "random-access-lists") (#<QL-DIST:SYSTEM random-access-lists / random-access-lists-

每次使用Quicklisp时,我都感觉自己在玩彩票。我找不到包含包列表和文档的网页

作为一个具体的例子,我在CL中搜索了
(ql:system apropos“random access list”)
,因为If基于Okasakis纯功能数据结构。我尝试了以下方法:

[1]> (ql:system-apropos-list "random-access-lists")
(#<QL-DIST:SYSTEM random-access-lists / random-access-lists-20120208-git / quicklisp 2016-03-18>)
[2]> 
[1]>(ql:system-apropos列表“随机访问列表”)
(#)
[2]> 
我知道名称
随机访问列表
不是很具体,因此可能还有其他具有该名称的包。上次我运气不太好,找到了4个不完全匹配的包,而最匹配的包不是我要找的包


如何查找有关搜索结果的更多信息

也许能帮上忙。请注意,它不是由Zach Beane维护的,而是由Eitaro Fukamachi维护的,因此我不确定此文档的最新情况。

一个有点黑客的解决方案是下载系统并使用
ASDF:system-DESCRIPTION
查看其说明。差不多

(defun describe-ql-system (system)
  (let ((system (asdf:find-system
                 (ql-dist:name
                  (ql-dist:ensure-installed
                   (ql-dist:find-system system))))))
    (format t "~a~%~@[~a~%~]"
            (asdf:system-description system)
            (asdf:system-long-description system))))

(describe-ql-system :random-access-lists)
; Persistent, random-access lists.
稍微精致一点的版本:

(defun describe-ql-system (system)
  (let ((system (if (typep system 'ql-dist:system)
                    system
                    (ql-dist:find-system system))))
    (unless (null system)
      (ql-dist:ensure-installed system)
      (handler-case
          (let* ((name (ql-dist:name system))
                 (system (asdf:find-system name)))
            (format t "~&~60,,,'=<~; ~a ~;~>~@
                       ~@[Author:         ~a~%~]~
                       ~@[Maintainer:     ~a~%~]~
                       ~@[Description:    ~a~%~]~
                       ~@[Long description:~@
                       ~a~%~]~%"
                    name
                    (asdf:system-author system)
                    (asdf:system-maintainer system)
                    (asdf:system-description system)
                    (asdf:system-long-description system)))
        (asdf:missing-component ())))))
(定义描述ql系统(系统)
let((系统)(如果)(类型P系统'ql区:系统)
系统
(ql区:查找系统)
(除非(空系统)
(ql区:确保已安装系统)
(处理程序案例)
(let*((名称(ql区:名称系统))
(系统(asdf:查找系统名称)))
(格式t“~&~60,,,”=~@
~@[作者:~a~%~]~
~@[维护者:~a~%~]~
~@[说明:~a~%~]~
~@[详细说明:~@
~a~%~]~%“
名称
(asdf:系统作者系统)
(asdf:系统维护者系统)
(asdf:系统描述系统)
(asdf:系统长描述系统)
(asdf:缺少组件(鼃()()))

间接地,您也可以参考projects/$(project name)/source.txt下的公共GitHub项目quicklisp/quicklisp项目,查看它从何处引入


这又是一个指向实际存储库的git链接,该存储库通常包含一些顶级文档。

您确定Quickdocs只记录quicklisp包吗?有些软件包是用quicklisp安装的,我在问题中提到的那个只是指向同一个github页面的链接,我想知道它和同名的quicklisp软件包是一样的。