-1

例えば:

(check-expect(2-list empty (list 3 4)) empty)
(check-expect(process-2-lists (list "nice" 'blue) empty)(list "nice" 'blue))
(check-expect(process-2-lists (list "nice" 'blue 5 10 5 'blue 5) (list "nice" 5 5 'red "wow")) (list 'blue 10 'blue))
4

2 に答える 2

1

いつものように、人々は自分の宿題を解決することを期待しています。それが学ぶ唯一の方法です!

(define (process-2-lists l1 l2)
  (cond (<???>       ; if the first list is empty
         <???>)      ; then we return the empty list
        (<???>       ; if the first element in l1 is not in l2 (*)
         (cons <???> ; then we add it to the result using cons
           (process-2-lists <???> l2))) ; and advance the recursion
        (else                           ; otherwise
         (process-2-lists <???> l2))))  ; advance the recursion adding nothing

リストの 1 つだけをトラバースする必要があることに注意してください。もう 1 つのリストは、それをチェックするために必要です。ここで重要な行は、 でマークされた行です(*)。これをどのように行うのですか?別のリストの要素のメンバーシップをテストするための独自のヘルパー プロシージャを作成することもできますが、ドキュメント参照すると、必要なものだけが見つかります。

于 2013-03-19T00:43:00.383 に答える
0

リスト内のアイテムをフィルタリングするb。

(filter
  (lambda (item)
    (not (member item b)))
  a)
于 2013-03-19T14:38:32.137 に答える