【发布时间】:2019-06-27 12:26:49
【问题描述】:
我正在 Racket 中编写一个upper-threshold 函数,它接受两个参数:一个数字列表和一个整数。
它所要做的就是递归地遍历列表并返回低于给定整数值的整数列表。但是,我的函数总是吐出一个空列表。我觉得这与我使用 append 函数的方式有关。
我已经显示了应该附加到我的空列表 z 的值,它们是正确的,但是由于某种原因它们没有附加到列表中!
(define (upper-threshold x y [z '()])
(cond [(null? x) z]
[else (cond [(< (first x) y) (append (list (first x)) z) (upper-threshold (rest x) y)]
[else (upper-threshold (rest x) y)])]))
例如,调用和返回应该如下所示:
(upper-threshold '(1 2 3 5 6) 4)
'(1 2 3)
【问题讨论】:
标签: racket