【发布时间】:2012-03-17 03:11:03
【问题描述】:
在clisp上加载以下2个函数成功。
(defun func1 (l)
(defvar *count* nil)
(setq count 1)
(cond ((null l) 0)
((atom l) (+ count 1))
((atom (car l)) (+ count (func1 (cdr l))))
((listp (car l)) (+ (func1 (car l)) (func1 (cdr l))))
(t nil)) )
(defun func2 (l)
(defvar *resLis* nil)
(setq resLis '((0 0)))
(anotherFunc l resLis)
)
但是,sbcl 会导致错误:
warning: undefined variable: COUNT
warning: undefined variable: RESLIS
Compilation failed.
我更喜欢使用sbcl(因为我的slime 只适用于它)但是上面的代码有什么问题?
环境:Ubuntu 11.10、GNU CLISP 2.49、SBCL 1.0.50.0.debian
【问题讨论】:
-
冒号在那里做什么?
-
正如我在@Arlen Cuss 回答的评论中提到的那样,我只是试图简化,认为这部分对问题并不重要。由于 2 人想知道,我修改了我的问题以添加隐藏部分。
标签: common-lisp sbcl clisp