如何计算字符列表中给定字符的数量?

how to count the number of given characters in a list of characters?

我是 Racket 的新手,想创建一个名为 occurrences 的函数来计算一个字符在字符列表中出现的次数。例如:

(occurrences '(#\a #\a #\b) #\a)

2 ; this should be the result

你可以用 foldl 来做,像这样:

(define (occurrences l c) 
   (foldl (lambda (x acc) (if (char=? x c) (+ acc 1) acc)) 0 l))
(writeln (occurrences '(#\a#\a#\b) #\a))

折叠将从零开始计数,并为每个与所需值匹配的项目递增