List Guile方案条件错误:要应用的类型错误:(1 2 3 4)

List Guile方案条件错误:要应用的类型错误:(1 2 3 4),list,scheme,lisp,List,Scheme,Lisp,我在玩弄诡计,对这个疯狂的问题感到困惑 (define func((lambda N lst) (if(eq? N 0) 0 (+ (car lst) 2)))) 调用函数 (func 2 (list 1 2 3 4 5)) 调用函数时出现以下错误 ERROR: In procedure (1 2 3 4): ERROR: Wrong type to apply: (1 2 3 4) 这是一个括号问题。从scheme开始时会发生很多事情 我建议您正确缩进代码,这将使代码

我在玩弄诡计,对这个疯狂的问题感到困惑

(define func((lambda N lst)
          (if(eq? N 0) 0 (+ (car lst) 2))))
调用函数

(func 2 (list 1 2 3 4 5))
调用函数时出现以下错误

ERROR: In procedure (1 2 3 4):
ERROR: Wrong type to apply: (1 2 3 4)

这是一个括号问题。从scheme开始时会发生很多事情

我建议您正确缩进代码,这将使代码更具可读性,并且更不容易出错

(define func
  (lambda (N lst)
    (if (eq? N 0)         
        0 
        (+ (car lst) 2))))

您的额外()已转换为

错误与代码完全不匹配。如何编写
func
它甚至不会绑定
func
,因为它无法编译。您收到的错误似乎表明您正在调用
lst
类似于
(lst)
,可能带有更多参数。