filter
Emacs Lisp 中是否有等效的高阶函数?就像来自 python 或 Javascript 的函数。
(filter-equivalent (lambda (n) (= (% n 2) 0)) '(1 2 3 4 5 6 7 8))
==> (2 4 6 8)
filter
Emacs Lisp 中是否有等效的高阶函数?就像来自 python 或 Javascript 的函数。
(filter-equivalent (lambda (n) (= (% n 2) 0)) '(1 2 3 4 5 6 7 8))
==> (2 4 6 8)
是cl-remove-if-not
。有点拗口,但确实有效。
详细说明一下,您需要
(require 'cl-lib)
来获得这个功能。它有一个别名,称为remove-if-not
,但我不想使用它,因为它看起来像是我在使用remove-if-not
from cl
。
包含前缀是一个很好的做法,不是using namespace std
在 C++ 中这样做,而是std::cout
每次都说。
第三方dash.el库提供了一个-filter
函数作为cl-remove-if-not
.
(-filter 'evenp '(1 2 3 4 5 6 7 8))
;; => (2 4 6 8)