問題26
http://www.geocities.jp/m_hiroi/func/yasp02.html
リスト ls を木とみなして、x と等しい要素 (葉) を探す関数 member-tree x ls を定義してください。
gosh> (member-tree 'd '(a (b (c (d . e) f) g) h))
#t
gosh> (member-tree 'e '(a (b (c (d . e) f) g) h))
#t
gosh> (member-tree 'x '(a (b (c (d . e) f) g) h))
#f
を下記のように書いたのですが、期待したように動きません。どこがまずいのでしょうか?
(define (member-tree x tree) (if (pair? tree) (let loop ((lis tree)) (cond ((null? lis) #f) ((member-tree x (car lis)) #t) (else loop (cdr lis)))) (equal? x tree)))
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。