1
我知道如何刪除元素時有列表和變量,但有沒有辦法從列表中刪除元素使用另一個列表?實施例:(列表1 2 3 4 5)(表1 2 3)的產率(表4 5)刪除列表與列表
我知道如何刪除元素時有列表和變量,但有沒有辦法從列表中刪除元素使用另一個列表?實施例:(列表1 2 3 4 5)(表1 2 3)的產率(表4 5)刪除列表與列表
這是一樣具有可變的,但需要使用成員函數,而不是等於?:
#lang racket
; remove every element included in rlist from flist
(define (remove-list rlist flist)
(if (empty? flist)
'()
(let ((c (car flist)))
(if (member c rlist) ; <====
(remove-list rlist (cdr flist))
(cons c (remove-list rlist (cdr flist)))))))
(remove-list (list 1 2 3) (list 1 2 3 4 5))
=> '(4 5)
在球拍這是相當簡單的,只需使用remove*
內置程序:
(remove* (list 1 2 3) (list 1 2 3 4 5))
=> '(4 5)
是相同的結果預期的(表4 1 2 3 5)和(表4 5 1 2 3)? – GoZoner 2013-03-20 15:49:31
另外,你爲什麼要這樣做?如果您試圖表示類似於減法的東西,則列表表示可能不合適。球拍包括集合作爲數據結構:http://docs.racket-lang.org/reference/sets.html – dyoo 2013-03-20 19:50:22