J'essaie d'apprendre à utiliser la correspondance dans le schéma. Je comprends en quelque sorte comment cela fonctionne avec des problèmes très courts (par exemple: définir la longueur est juste deux lignes), mais pas avec des problèmes où il y a plus d'une entrée, et les programmes d'aide. Par exemple, voici une façon populaire de définir union:Utilisation de match dans le schéma
(define ele?
(lambda (ele ls)
(cond
[(null? ls) #f]
[(eq? ele (car ls)) #t]
[else (ele? ele (cdr ls))])))
(define union
(lambda (ls1 ls2)
(cond
[(null? ls2) ls1]
[(ele? (car ls2) ls1) (union ls1 (cdr ls2))]
[else (union (cons (car ls2) ls1) (cdr ls2))])))
Comment faites-vous cela en utilisant la correspondance dans les deux programmes? (Ou auriez-vous besoin même deux programmes?)