如何使用count
计算列表中的特定数字?
(define lst '(1 1 1 1 2 2 2 3 3 3 3 3 4 4)
(count 2 lst);; what should I use at the place of '2'
但是它导致了以下错误。
计数:合同违规
预期:程序?
给出:2
答案 0 :(得分:1)
count
计算过程返回true
的列表元素的数量。在这种情况下,如果元素为2:(lambda (x) (equal? x 2))
,则需要一个仅返回true的过程。
完整的,你可以做
(define lst '(1 1 1 1 2 2 2 3 3 3 3 3 4 4))
(count (lambda (x) (equal? x 2)) lst)
旁注:您可以通过用(curry equal? 2)
替换lambda表达式来缩短它。