スキームでマッチを使用する方法を学ぼうとしています。非常に短い問題 (つまり、長さの定義はわずか 2 行) ではどのように機能するかはある程度理解できますが、複数の入力がある問題やヘルパー プログラムではそうではありません。たとえば、共用体を定義する一般的な方法は次のとおりです。
(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))])))
両方のプログラムで一致を使用してこれを行うにはどうすればよいですか? (または、2 つのプログラムが必要でしょうか?)