方案搜索程序中的语法错误

时间:2011-02-23 04:08:44

标签: recursion scheme

“定义一个名为search的函数,它接受一个符号和一个列表,并使用基于零的索引返回列表中第一次出现符号的位置。(如果列表的第一个元素等于符号,返回0.)仅搜索顶级元素。如果列表不包含符号,则返回-1。“

我写了这样的程序,但是我遇到了语法错误。有人可以帮帮我吗。

(define search (lambda (n x)
                 (let ( (i 0)))
                   (if (empty? x)
                    -1
                    (if (equal? n (car x))
                        0
                     (let ((index (+ i 1)) (tail (cdr x))))
                     (if (equal? n (search (n tail)))                       
                       index)))))

1 个答案:

答案 0 :(得分:2)

看起来你在这一行上有太多的右括号:

             (let ( (i 0)))

删除最后一个,然后重试。这不是代码中唯一的语法错误,因此您必须注意使所有括号正确匹配。