2011-05-04 76 views
1

我目前正在玩一些計劃,我一直在試圖弄清楚如何實施一個測試,它檢查'xs'中的任何元素是否也存儲在'L'。方案匹配元素

這是數學函數'\ in',僅用於列表xs中的每個元素。

+0

寫一個遞歸確定指標,但所有我得到的是錯誤的,而且我十分贊同它現在夠了 - .- – Skeen 2011-05-04 19:26:06

+0

想出了一個解決方案 – Skeen 2011-05-04 19:53:30

+0

這是習慣分享 – 2011-05-22 10:08:54

回答

2

你想自己動手寫的實踐,或者你只是需要的功能?

如果你只是想要的功能,然後使用larsmans的答案(我從來沒有用過,但它看起來不錯,我)。

要實現嘗試以下(免責聲明:我沒有測試過這一點)


(define has-intersect? 
     (lambda (xs l) 
      (cond 
      [(null? xs) #f] 
      [(member? (car xs) l) #t] 
      [else (has-intersect? (cdr xs) l)]))) 
1

用數學術語來說,你要檢查兩個列表/集合的交集是否非空。如果你有一個SRFI-1庫,這是微不足道的:

(not (null? (lset-intersection l xs))) 

SRFI-1的實現可以在SLIB找到。

(免責聲明:我以前SLIB貢獻者。)