2015-06-11 89 views
2

我有2所列出:球拍方案比較和刪除不需要的項目列表中的

(Define list1 '("xx1" "xx2" xx3" "xx4" "xx5")) 
(Define list2 '("xx2" "xx4" "xx5")) 

在列表中的項目以上是隻是一個例子,但無論哪種方式,這將是一個字符串項。我需要做的是將兩個列表進行比較,並刪除列表1中找到的項目。

有沒有一個簡短的地圖例程,我可以做?

這是不是有些功課項目,我希望能有一個當然這裏編程類,但:/

+0

[在兩個列表共同要素與重複]的可能重複(http://stackoverflow.com/questions/18152062/common-elements-in-two-lists-with-duplicates) – Crembo

+0

球拍語言編程課程:[如何設計程序](http://www.htdp.org/)。計劃標準[SICP](http://mitpress.mit.edu/sicp/full-text/book/book.html)和[視頻課程](https://www.youtube.com/watch?v=2Op3QLzMgSY&list =(P8FE88AA54363BC46)由麻省理工開放課程(R4RS,但大多與今天的計劃和'#!racket'兼容。)[SICP compability package](http://stackoverflow.com/a/25096066/1565698)) – Sylwester

回答

0
#lang racket 
(define list1 '("xx1" "xx2" "xx3" "xx4" "xx5")) 
(define list2 '("xx2" "xx4" "xx5")) 

(for/list ([x (in-list list1)] 
      #:unless (member x list2)) 
    x) 

結果:

'("xx1" "xx3") 
+0

完善!這解決了我以前的帖子:) – disaster999

1

還有remove*

一個例子:

#lang racket 
(define list1 '("xx1" "xx2" "xx3" "xx4" "xx5")) 
(define list2 '("xx2" "xx4" "xx5")) 

(displayln (remove* list2 list1)) 

打印:

(xx1 xx3)