2016-12-14 64 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