我正在学习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
但是,我想必须有一个更简单的解决方案。
答案 0 :(得分:9)
你可以做到
(filter identity '("a" "b" #f 1 #f "c" 3 #f))
因为没有#f被认为是真的。