scheme - 如何计算 bool 列表中 true 元素的数量?

标签 scheme lisp racket

我可以写一个这样的函数

(define (bool-num x) (if x 1 0))
(define (cnt-true lst)
  (foldl + 0 (map bool-num lst)))

但是我发现不太优雅,因为racket有count函数和false?,但是没有true?

这样我就可以计算错误元素的数量:

(count false? lst)

有什么我想念的吗?

最佳答案

您正在寻找过程身份:

(count identity '(#t #f #t #t #f))
=> 3

(count identity '(1 2 #t #f #f 9))
=> 4

关于scheme - 如何计算 bool 列表中 true 元素的数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19805933/

相关文章:

clojure - 前缀列表中的库名称不得包含句点

racket - 在 Racket 中解压一个条目到内存

方案:与集合混淆!

printing - 如何打印WeScheme程序?

scheme - 如何保存和恢复 Racket 沙盒评估器的状态?

c - Gambit-C 方案 : cannot load a windows dll

list - 从两个不同大小的列表创建对列表

if-statement - LISP 中的错误 - SYSTEM::%EXPAND-FORM:无效形式 (40)

lisp - 破坏性 Lisp 函数名称中的 "N"缩写的是什么词?

macros - 如何在 Scheme 中的列表中映射宏?