Je dois écrire la fonction qui peut substituer les variables dans les paires de liste dans la liste. par exemple (subsitute-var '((p #t) (Q #f)) '(P and Q or Q))
besoin d'aide pour la fonction de remplacement dans le schéma
J'ai écrit un code
(define substitute
(lambda (A B list)
(cond
((null? list) '())
((list? (car list))
(cons (substitute A B (car list)) (substitute A B (cdr list))))
((eq? (car list) A) (cons B (substitute A B (cdr list))))
(else
(cons (car list) (substitute A B (cdr list)))))))
(define substitute-var
(lambda (list var)
(cond
((null? list) '())
((null? var) '())
((substitute (caar var) (car (cdr (car var))) list))
(substitute-var list (cdr var)))))
mais les choses est qu'il remplace uniquement la première paire (p #t)
et a quitté le reste de la liste comme le même. J'essaie d'appeler substitute-var
récursivement, mais cela ne fonctionne pas non plus. j'ai donc besoin d'aide. S'il vous plaît aidez-moi vous remercier
et aussi le résultat de cette fonction subst-var devrait être comme (subsitute-var '((p # t) (Q #f))' (P et Q ou Q)) => (#t et #f ou #f) – Daniel
Il est fâcheux d'appeler l'argument de substitut de 'list'. La raison en est que 'list' est une fonction intégrée. Je suggère l'a appelé, disons, xs, ou similaire. – soegaard