【发布时间】:2010-11-14 01:10:55
【问题描述】:
这个递归函数似乎工作正常,将我想要的确切字母 B 和 C 添加到结果列表中,然后当它完成时,它正确地看到已经到达最后一个元素。
然后它执行基本情况,并发生我无法解释的错误。是什么导致了这个错误?
(define(preceding-R X Vector result)
(if (eq? '() (cdr (vector->list Vector)))
result
(helper X Vector result)))
(define (helper X Vector result)
(if(eqv? X (cadr (vector->list Vector))) ((set! result (cons result (car (vector->list Vector)))) (preceding-R X (list->vector (cdr (vector->list Vector))) result))
(preceding-R X (list->vector (cdr (vector->list Vector))) result)))
(preceding-R 'a #(b a c a) '()))
错误:
程序应用程序:预期程序,给定:#;参数是: ((() . b) . c)
【问题讨论】:
-
请格式化您的代码并简要说明代码必须做什么。