我正在尝试调用递归调用方案我得到的只是我不明白的错误。

(define removeFirst (lambda (N L)
(cond

( (null? L)  '()  )

( (= (car L) N)   (removeFirst(N cdr L))                     )

( #t          (cons (car L) (removeFirst(N cdr L)) )          )         )

)
))

最佳答案

Algol/C调用样式:

funName(arg1, arg2)

Lisp调用样式:
(fun-name arg1 arg2)


(removeFirst (N cdr L))

同:
removeFirst(N(cdr, L));

完全可以,只要N是一个函数,但是您也可以将N与一个数字进行比较,因此在使用N的代码中至少有一个错误C语言中的额外括号经常被忽略,而在Lisp中则永远不会被忽略它们对法典的意义至关重要您可能打算编写完全不同的代码:
(removeFirst N (cdr L))

10-08 16:21