Scheme 无法调用错误方案

Scheme 无法调用错误方案,scheme,Scheme,我正在编写一个函数,它应该取一个列表s和一个值v,然后返回一个包含该值的有序列表。这是我的密码: (define (add s v) (cond ((empty? s) (list v)) ((contains? s v) s) ((< v (car s)) (append (list v) s)) ((> v (car s)) (append (list (car s)) ((add (cdr s) v)))) ) ) (定义(添加s

我正在编写一个函数,它应该取一个列表s和一个值v,然后返回一个包含该值的有序列表。这是我的密码:

(define (add s v)
(cond ((empty? s) (list v))
  ((contains? s v) s)
      ((< v (car s)) (append (list v)  s))
      ((> v (car s)) (append (list (car s)) ((add (cdr s) v)))) 
      )
)
(定义(添加s v)
(条件((空?s)(列表五))
((包含?s v)s)
(v(汽车))(附加(列表(汽车))((添加(cdr s)v)))
)
)

我不断收到一个错误“无法调用(某些列表)。”我是scheme的新手,我想知道这个错误是什么意思?

在scheme
add
中是一个变量,如果用括号括起来,它就是一个过程调用
(add(cdr s)v)
<代码>((添加(cdr)v))有两个。一个用于获取结果(列表),另一个用于尝试调用列表,就像调用过程一样。它将失败,但Scheme只在运行时发现。去掉多余的那一套就行了。还要知道,您正在为将值放入正确位置的过程中的每个步骤检查
包含?
。哦。谢谢你的解释和帮助!在Scheme
add
中,是一个变量,如果用括号括起来,则它是一个过程调用
(add(cdr s)v)
<代码>((添加(cdr)v))有两个。一个用于获取结果(列表),另一个用于尝试调用列表,就像调用过程一样。它将失败,但Scheme只在运行时发现。去掉多余的那一套就行了。还要知道,您正在为将值放入正确位置的过程中的每个步骤检查
包含?
。哦。谢谢你的解释和帮助!