Cette fonction récursive semble fonctionner correctement, en ajoutant à la liste de résultats les lettres exactes que je veux, B et C, et quand elle se termine, elle voit correctement que le dernier élément a été atteint. Il exécute ensuite le cas de base et une erreur se produit que je ne peux pas expliquer. Qu'est ce qui cause cette erreur?Erreur de récurrence de schéma
(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) '()))
L'erreur:
procedure application: expected procedure, given: #; arguments were: ((() . b) . c)
Veuillez formater votre code et expliquer brièvement ce que le code doit faire. – ffriend