请问这个递归程序哪里出现了错误?提示:参数类型错误
(defun li5(a);本程序用以求和表中所有的数(if (= a nil)(setq sum 0) (setq sum (+ (car a) li5(cdr a))))
)
;还有,递归可以用于命令吗?比如:
;(defun c:li5();本程序用以求和表中所有的数
;(setq a (getstring "请输入一个表"))
; (if (= a nil)(setq sum 0) (setq sum (+ (car a) li5(cdr a))))
;)
(defun f (a)
(if a
(+ (car a) (f (cdr a)))
0
)
) 递归有好多问题,不是一两句能说清楚的,我这里http://bbs.mjtd.com/thread-107136-1-1.html 有个帖子,有兴趣可以看看。
原则上,递归不能被用在外部函数(命令)。
对表求和不是使用递归,正确的方法应该是(apply '+ a)。
页:
[1]