“定义一个名为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)))))
答案 0 :(得分:2)
看起来你在这一行上有太多的右括号:
(let ( (i 0)))
删除最后一个,然后重试。这不是代码中唯一的语法错误,因此您必须注意使所有括号正确匹配。