私はスキームが初めてで、いくつかの演習を行っています。私は次のことをしようとしています: 私が書こうとしている関数は、1 つのリスト パラメーターを取ります (入力チェックは必要ありません)。次に、要素の複数の出現を削除し、新しいリストを返します。入出力の例を次に示します。関数を「一度」呼び出してみましょう。
=>(once '(1 2 5 2 3 4 2 4 1 2))
=>Value: (1 2 5 3 4)
これが私の解決策です:
(define once
(lambda (lst)
(if (null? lst)
'()
(if (member (car lst) (cdr lst))
(once (cdr lst))
(cons (car lst) (once (cdr lst)))))))
ただし、要素の順序は変更されますが、重複は排除されます。誰でも助けることができますか?ありがとう