emacs lisp dash.el 的 --filter 怎么返回出其中的非nil的值

(require 'dash)

(defun  is-linux ()
  "判断是否是 linux 系统,是返回 '(linux) 否返回 nil"
  (if (or (eq system-type 'gnu/linux) (eq system-type 'linux))
      '(linux)
      )
	)
(is-linux)
(defun is-win64 ()
  (if (eq system-type 'windows-nt)
      '(win64)
      )
	)
(is-win64)

(defun is-mac ()
  (if (eq system-type 'darwin)
      '(mac)
      )
	)
(is-mac)

;;(--filter (= 0 (% it 2)) '(1 2 3 4)) ;; => (2 4)
(--filter (not (eq nil it)) '(is-linux is-win64 is-mac))
;; 我想返回一个值

我想使用--filter执行 '(is-linux is-win64 is-mac) 中的所有函数然后返回一个 '(mac) '(win64) '(linux)其中的一个值

改善一下排版,把重点突显出来。

改了一遍, :smile:

(require 'dash)

 (defun  is-linux ()
  "判断是否是 linux 系统,是返回 '(linux) 否返回 nil"
  (if (or (eq system-type 'gnu/linux) (eq system-type 'linux))
      'linux))
(is-linux)

(defun is-win64 ()
  (if (eq system-type 'windows-nt)
      'win64))
(is-win64)

(defun is-mac ()
  (if (eq system-type 'darwin)
      'mac))
(is-mac)

;;(--filter (= 0 (% it 2)) '(1 2 3 4)) ;; => (2 4)
(car (--filter (not (eq nil it)) `(,(is-linux) ,(is-win64) ,(is-mac))))
;; 我想返回一个值

改了一下,不知道是否符合你的意思?

问一下为什么使用 `,