如何加载和使用quicklisp程序
How to load and use quicklisp program
我已经设置了 quicklisp(使用最新的 SBCL)并完成了
* (ql:quickload "draw-cons-tree")
我收到了回复
To load "draw-cons-tree":
Load 1 ASDF system:
draw-cons-tree
; Loading "draw-cons-tree"
("draw-cons-tree")
我检查了我的 quicklisp
目录,我看到它已经被下载,基本上完全是 these 的内容。那么我如何在我打开的 SBCL REPL 中实际使用 draw-cons-tree
呢? github 网站说:
* (draw-tree '(a b (c nil 1)))
应该生产
[o|o]---[o|o]---[o|/]
| | |
A B [o|o]---[o|o]---[o|/]
| | |
C NIL 1
NIL
但我刚开始
debugger invoked on a UNDEFINED-FUNCTION in thread
#<THREAD "main thread" RUNNING {10005385B3}>:
The function COMMON-LISP-USER::DRAW-TREE is undefined.
我在这里错过了什么?我对 quicklisp 的唯一其他真实体验是 slime,它有一个特定的 .el
文件可以在 Emacs 中调用以让 slime 运行。我是否需要深入目录
~/quicklisp/dists/quicklisp/software/draw-cons-tree-20131003-git/draw-cons-tree.lisp
每次我想使用它时加载它?我试过了,至少对我来说很奇怪,我得到了一个重新定义函数的警告列表,一个是 draw-tree
。所以我的 REPL 知道 draw-tree
但不知道?我在这里错过了什么?
Quicklisp 加载一个系统,它可能会向您的环境添加零个、一个或多个包。有时这些包的名称很容易猜到,比如当你安装系统 cl-ppcre
时,你有一个名为 "CL-PPCRE"
的包,你可以从中 运行 东西。有时您必须阅读文档才能知道如何使用您安装的系统。
但如果您正在寻找特定功能,则可以使用 apropos
:
CL-USER> (apropos "draw-tree")
DRAW-CONS-TREE::%DRAW-TREE
DRAW-CONS-TREE:DRAW-TREE (fbound)
:DRAW-TREE (bound)
这里有一个导出的符号,要么用完全限定的名称调用它:
(DRAW-CONS-TREE:DRAW-TREE ...)
或者先使用包,以便可以从当前包访问符号:
> (use-package "DRAW-CONS-TREE")
> (draw-tree ...)
或者,定义一个使用该包的新包,或者使用 in-package
进入该包以访问其符号等。
我已经设置了 quicklisp(使用最新的 SBCL)并完成了
* (ql:quickload "draw-cons-tree")
我收到了回复
To load "draw-cons-tree":
Load 1 ASDF system:
draw-cons-tree
; Loading "draw-cons-tree"
("draw-cons-tree")
我检查了我的 quicklisp
目录,我看到它已经被下载,基本上完全是 these 的内容。那么我如何在我打开的 SBCL REPL 中实际使用 draw-cons-tree
呢? github 网站说:
* (draw-tree '(a b (c nil 1)))
应该生产
[o|o]---[o|o]---[o|/]
| | |
A B [o|o]---[o|o]---[o|/]
| | |
C NIL 1
NIL
但我刚开始
debugger invoked on a UNDEFINED-FUNCTION in thread
#<THREAD "main thread" RUNNING {10005385B3}>:
The function COMMON-LISP-USER::DRAW-TREE is undefined.
我在这里错过了什么?我对 quicklisp 的唯一其他真实体验是 slime,它有一个特定的 .el
文件可以在 Emacs 中调用以让 slime 运行。我是否需要深入目录
~/quicklisp/dists/quicklisp/software/draw-cons-tree-20131003-git/draw-cons-tree.lisp
每次我想使用它时加载它?我试过了,至少对我来说很奇怪,我得到了一个重新定义函数的警告列表,一个是 draw-tree
。所以我的 REPL 知道 draw-tree
但不知道?我在这里错过了什么?
Quicklisp 加载一个系统,它可能会向您的环境添加零个、一个或多个包。有时这些包的名称很容易猜到,比如当你安装系统 cl-ppcre
时,你有一个名为 "CL-PPCRE"
的包,你可以从中 运行 东西。有时您必须阅读文档才能知道如何使用您安装的系统。
但如果您正在寻找特定功能,则可以使用 apropos
:
CL-USER> (apropos "draw-tree")
DRAW-CONS-TREE::%DRAW-TREE
DRAW-CONS-TREE:DRAW-TREE (fbound)
:DRAW-TREE (bound)
这里有一个导出的符号,要么用完全限定的名称调用它:
(DRAW-CONS-TREE:DRAW-TREE ...)
或者先使用包,以便可以从当前包访问符号:
> (use-package "DRAW-CONS-TREE")
> (draw-tree ...)
或者,定义一个使用该包的新包,或者使用 in-package
进入该包以访问其符号等。