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

时间:2015-07-29 06:18:05

标签: scheme lisp racket

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

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

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

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

1 个答案:

答案 0 :(得分:9)

你可以做到

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

因为没有#f被认为是真的。