這個遞歸函數似乎可以正常工作,向結果列表中添加我想要的確切字母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) '()))
錯誤:
procedure application: expected procedure, given: #; arguments were: ((() . b) . c)
請格式化您的代碼並簡要說明代碼必須執行的操作。 – ffriend 2010-11-14 01:25:23