【发布时间】:2019-10-19 21:29:05
【问题描述】:
我对 Scheme/Racket 没有太多经验,但我正在尝试创建一个函数来计算列表中有多少正值。到目前为止我有这个:
(define num_pos 0)
(define num_neg 0)
(define (numpos lst)
(cond
((null? lst) 0)
((>= (car lst) 0) (+ num_pos 1) (numpos (cdr lst)))
(else (+ num_neg 1) (numpos (cdr lst)))
)
)
但是当我在 DrRacket 中运行它并对其进行测试时,lst 始终为空,因此如果我调用 (numpos '(1 -1 2)) 它会通过 null 检查返回 0,但如果我删除 null 检查它在(car lst)上崩溃,说它需要一对但得到'()。我花了一点时间没有运气。有任何想法吗?
【问题讨论】: