如何从球拍列表中过滤掉错误值

How to filter out false values from the list in racket

我正在学习 Racket(但在任何方案和方案派生语言中答案可能都是相似的)并且想知道如何从给定列表中过滤掉错误 (#f) 值。我想到的最好的是:

(filter (lambda (x)
           (not (eq? x #false)))
        '("a" "b" #f 1 #f "c" 3 #f))

'("a" "b" 1 "c" 3) ;; output

但是,我想必须有一个更简单的解决方案。

你可以做到

(filter identity '("a" "b" #f 1 #f "c" 3 #f))

因为任何不是 #f 的都被认为是真实的。