Scheme

时间:2017-04-17 01:06:00

标签: scheme racket

(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 ))

1 个答案:

答案 0 :(得分:1)

当过程完成遍历列表时返回#f值,这意味着找不到搜索到的元素,从而结束递归。