【发布时间】:2020-06-09 19:35:05
【问题描述】:
我正在编写一个名为 count-if 的函数,它接收一个谓词 p? 和一个列表 ls。该函数返回嵌套列表中满足 p? 例如: (count-if (lambda (x) (eq? 'zx)) '((fx) z (((zxcvz) (y))))) 将返回 3。这是我写的:
(define (count-if p ls) (cond
((null? ls) '())
((p (car ls))
(+ 1 (count-if p (cdr ls))))
(else
(count-if p (cdr ls)))))
但我只是得到一个错误。我可以使用一些帮助找到更好的方法来解决这个问题。谢谢!
【问题讨论】:
标签: recursion scheme racket swap r5rs