我在递归方面遇到了一些问题。只是想确保我变得更好。假设我想查看一个数字是否在列表中。如果是,则返回 true,否则返回 false。
(define (contains? n lst)
(cond
[(empty? lst) false]
[(cons? lst)
..... (first lst)
(contains? (rest lst)
递归部分总是欺骗我。有必要在这里打电话cons?
吗?因为如果你只是在寻找列表的第一个,它不是。
(define (contains? n lst)
(cond
[(empty? lst) false]
[(= n (first lst)) true]))
(check-expect (contains? 1 (list 1 2)) true)
(check-expect (contains? 1 empty) false)