在Python中,我可以执行“x in list”以查看列表是否包含x。在Scheme中有没有相同的内置功能呢?
答案 0 :(得分:7)
R5RS和R6RS standard library for lists
定义memq
,memv
和member
可用于此目的。
答案 1 :(得分:6)
在PLT计划中,有人
(member whatever list)
(memv whatever list)
(memq whatever list)
来自SRFI的分别使用equal?
,eqv?
和eq?
来测试相等性。还有一些与列表搜索相关的其他库函数:
答案 2 :(得分:4)
(define (contains? l i)
(if (empty? l) #f
(or (eq? (first l) i) (contains? (rest l) i))))
答案 3 :(得分:0)
不,没有列表内置谓词会为您做到这一点。尽管如此,定义一个lambda或一个宏非常容易。