内置方案以检查列表包含

时间:2009-12-08 19:00:21

标签: list scheme

在Python中,我可以执行“x in list”以查看列表是否包含x。在Scheme中有没有相同的内置功能呢?

4 个答案:

答案 0 :(得分:7)

R5RS和R6RS standard library for lists 定义memqmemvmember 可用于此目的。

答案 1 :(得分:6)

在PLT计划中,有人

(member whatever list)
(memv whatever list)
(memq whatever list)
来自SRFI的

分别使用equal?eqv?eq?来测试相等性。还有一些与列表搜索相关的其他库函数:

PLT Scheme list reference

答案 2 :(得分:4)

(define (contains? l i)
  (if (empty? l) #f
      (or (eq? (first l) i) (contains? (rest l) i))))

答案 3 :(得分:0)

不,没有列表内置谓词会为您做到这一点。尽管如此,定义一个lambda或一个宏非常容易。