2016-12-14 52 views
0

如何使用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' 

但是,它导致以下错误。

count:合同违规
预计:程序?
下式给出:对于该程序返回true列表中元素的2个

回答

1

count计数的数目。在这种情况下,您需要一个仅在元素为2时才返回true的过程:(lambda (x) (equal? x 2))

在全面,你可以做

(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表达式缩短。

+1

我以前从来没有见过使用'咖哩'。它主要用于替换lambda表达式吗? @Gibstick – Toat

+1

@Toat是的,这就是我如何使用它(节省)。 – Gibstick