-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

请注意,我们只需要遍历其中一个列表,我们需要另一个来检查它。这里的关键线是用 标记的那一条(*)。我们将如何做到这一点?好吧,您可以编写自己的帮助程序来测试另一个列表中元素的成员资格,但是如果您查看文档,您会发现您所需要的。

于 2013-03-19T00:43:00.383 回答
0

过滤列表 b 中的项目。

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