2016-12-14 2 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' 

그러나 다음과 같은 오류가 발생합니다.

카운트 : 계약 위반
예상 됨 : 절차?
제공 : 절차가 true을 반환하는 목록의 요소 2

답변

1

count 카운트 수. 이 경우 요소가 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)로 람다 식을 대체하여이 단축 될 수 있습니다.

+1

나는 전에 '카레'의 사용법을 본 적이 없다. 그것은 주로 람다 식을 대체하기위한 것입니까? @Gibstick – Toat

+1

@Toat 예, 그렇게 사용하는 방법입니다 (드물게). – Gibstick

관련 문제