(define memv2
(lambda (x l)
(cond
((null? l) #f)
((eqv? (car l) x)
cdr l)
(else
(memv2 x (cdr l))))
学习考试 - 我的笔记中提供了这段代码作为Scheme中内置memv函数的复制。我想知道是否有人可以解释#f在这种情况下做了什么。它正在退出循环吗?
(memv接收一个元素和一个列表,并从元素点开始返回列表,例如:(memv 2'(1 2 3 4 5))将返回(2 3 4 5 ))
答案 0 :(得分:1)
当过程完成遍历列表时返回#f
值,这意味着找不到搜索到的元素,从而结束递归。