我是Common Lisp的新手.我尝试建立自己的运营商功能.在第一个函数中,我尝试将一个添加到给定的数字.第二个函数应该以m的频率递归使用第一个函数.当我输入totaladd(5 3)时,我期待一个8.我怎么能对未定义的函数k做什么?和
(defun add1(n)
(+ n 1)
)
(write (add1 5))
(defun totaladd (k m)
(if (eq m 0)
0
(totaladd(add1(k) (- m 1)))
)
)
(write (totaladd 5 3))
Run Code Online (Sandbox Code Playgroud)
下一行有三个错误:
(totaladd(add1(k) (- m 1)))
Run Code Online (Sandbox Code Playgroud)
我们来看看吧:
(totaladd ; totaladd is a function with two parameters
; you pass only one argument -> first ERROR
(add1 ; add1 is a function with one parameter
; you pass two arguments -> second ERROR
(k) ; K is a variable, but you call it as a function,
; but the function K is undefined -> third ERROR
(- m 1)))
Run Code Online (Sandbox Code Playgroud)