1

だから私は、1つの要素と1つのリストを取り、要素が複製されたリストを返すスキーム関数を書いてい(replicate 'd '(a b c 1 d))ます'(a b c 1 d d))

ただし、要素がリストの一部ではない場合は常に元のリストが返され、含まれている場合は要素が返されます。私はスキームに不慣れで、自分のエラーがどこにあるかを見つけるのに苦労しています。助けていただければ幸いです!

(define (replicate elmt set)
 (cond((null? set) '())
     ((member? elmt set)(replicate_helper elmt set))
     (else set)))

(define (replicate_helper elmt set)
    (cond (eq? (car set) elmt) (cons elmt set)
        (else (cons (car set)
                (replicate_helper elmt (cdr set))))))

またメンバー?要素がリストにある場合は #t を返し、そうでない場合は #f を返す私の関数です。外観は次のとおりです。

(define (member? elmt set)
 (cond ((null? set) #f)
    ((eq? elmt (car set)) #t)
    (else(member? elmt (cdr set)))))
4

1 に答える 1