2011-11-09 14 views
1

私はサブリストを削除する機能を持っていません。任意の助けをいただければ幸いですSCHEME:サブリストを削除する

'(("a" "c") ("a" "l") ("b" "c") ("b" "l") ("c" "hmm")) 

:これは結果でなければなりません

'((("a" "c") ("a" "l")) (("b" "c") ("b" "l")) (("c" "hmm"))) 

私はこのリストを持っています。

+2

あなたはあなたが、これは宿題で、特に以来、これまでにやっている私たちを表示する必要が – Manoj

+0

何をしました。 – NickLH

+0

デザインレシピに従う:データ定義はありますか?目的の声明?テストケース? –

答えて

0

flatten(ネット上にある)とcreatePairsの2つの関数が使用されました。

最初の関数は次のように1つのレベルの深リストにリストを平坦化:

'("a" "c" "a" "l" "b" "c" "b" "l" "c" "hmm") 

そして、第2の機能createPairsは次のようにペアでリストを結合します

:ここ
'(("a" "c") ("a" "l") ("b" "c") ("b" "l") ("c" "hmm")) 

が使用する関数です

平坦化:

(define (flatten list) 
    (cond ((null? list) '()) 
     ((list? (car list)) (append (flatten (car list)) (flatten (cdr list)))) 
     (else 
      (cons (car list) (flatten (cdr list)))))) 

CreatePairs:

(define (createPairs a) 
    (cond ((null? a) '()) 
     (else 
     (cons (list (car a) (car (cdr a))) 
       (createPairs (cdr (cdr a))))))) 
関連する問題