当你:use #:hunchentoot 之后,你程序中的start都是hunchentoot:start
发送自HTC手机
新人报道。
common lisp相关的书和代码看了一阵子了,之前简短的测试代码写过一些,基本是一些玩具片段,这次准备正式动手弄个项目结构,受到点挫折。
我用quickproject:make-project生成项目模板,在.asd文件的defsystem中加入
> :depends-on (:hunchentoot)
在package.lisp文件的defpackage中加入
> (:use :cl :hunchentoot)
然后在实现文件中加入:
> (export '(start))
> (defun start ()
> (hunchentoot:start (make-instance 'hunchentoot:easy-acceptor :port 4242)))
quickload后调用myproject:start报错如下:
debugger invoked on a SB-INT:SIMPLE-PROGRAM-ERROR in thread
#<THREAD "main thread" RUNNING {10029E9103}>:
invalid number of arguments: 1
Type HELP for debugger help, or (SB-EXT:EXIT) to exit from SBCL.
restarts (invokable by number or by possibly-abbreviated name):
0: [ABORT] Exit debugger, returning to top level.
(HUNCHENTOOT:START #<unknown>)[:EXTERNAL]
把defpackage中的(:use :cl :hunchentoot)改为(:use :cl) (:import-from :hunchentoot)就没错误了,不解。看书上说这两个的差异就是:import-from是选择性只导入部分符号,看一些范例也是使用:use的,莫非和cl的实现有关?我使用的是sbcl-1.1.1。
--
Lisp-cn(Lisp中文用户组)
CLUG
http://lisp.org.cn