2016-10-20 5 views
0

入力リストにある一意の要素を返すScheme関数を作成しようとしています。この関数は、アトム、ペア、およびリストで機能するはずです。私は、入力リストが '(1 2(2)(2)2)(4 3)(4 3)3 5 2 4)のように見える場合、関数は5を返さなければなりません。リストから非固有の要素(原子、ペア、リストを含む)をすべて削除するScheme

(define (delduplicates L) 
    (cond ((null? L) '()) 
      ((list? (member (car L) (cdr L))) 
      (delduplicates(cdr L))) 
      (#T (cons (car L) (delduplicates (cdr L)))))) 
(delduplicates '(1 1 2 3 3 4 4 5)) > (1 2 3 4 5) 

これに伴う問題は、それが唯一の重複を削除することです:

は、ここに私の現在のコードです。

+0

これまでに何を試しましたか?これについて特定の質問をすることができますか?今はあなたが私たちがあなたのためにこれを書いてくれると期待しているようですが、私たちはここではしません。以下をお読みください:http://meta.programmers.stackexchange.com/questions/6166/open-letter-to-students-with-homework-problems – EJoshuaS

答えて

0

私はこれまでやった:

(define (delduplicates L) 
(cond ((null? L) '()) 
((list? (member (car L) (cdr L)))(delduplicates(cdr L))) 
(#T (cons (car L) (delduplicates (cdr L)))))) 
(delduplicates '(1 1 2 3 3 4 4 5)) 
> (1 2 3 4 5) 

uが見ることができるように、それが唯一の重複を削除します。私はこのタイプのプログラミングに慣れていません。私の命令的な考え方は、宣言的な方法で考えようとする試みを防ぎます。

関連する問題