scheme - 如何从 Racket 列表中过滤掉错误值

标签 scheme lisp 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 的东西都被认为是真的。

关于scheme - 如何从 Racket 列表中过滤掉错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31692592/

相关文章:

lisp - Common Lisp 的矢量图形库

lisp - lisp/scheme 中的符号到底是什么?

list - 如何处理传递给 Racket 函数的可变数量的参数?

tree - 算术树的前、中、后顺序 [方案/ Racket ]

string - 创建字符串并将其用作输出文件的名称

emacs - 您推荐的 Emacs Lisp 是什么?

scheme - 这段代码中下划线代表什么

scheme - PLT-Scheme学习引用

scheme - 这些嵌套向量是如何连接的?

emacs - 在启动时添加 Hook 到 emacs scrap