Elisp: Some and Every
Here's how to write “every” and “some” functions.
(defun my-some (xlist) "return t if at least one element is true" (eval `(or ,@ xlist))) (defun my-every (xlist) "return t if at least one element is true" (eval `(and ,@ xlist))) ;; HHHH------------------------------ ;; test (my-every (list 3 nil 4)) (my-every (list 3 4 5))
Here's naive try using apply
.
(apply #'or '( nil nil t)) ;; Debugger entered--Lisp error: (invalid-function or) ;; or(nil nil t) ;; apply(or (nil nil t)) ;; eval((apply (function or) (quote (nil nil t))) nil) ;; elisp--eval-last-sexp(nil) ;; eval-last-sexp(nil) ;; funcall-interactively(eval-last-sexp nil) ;; call-interactively(eval-last-sexp nil nil) ;; command-execute(eval-last-sexp)
It doesn't work because “or” is a “special form”, meaning, it's a lisp macro but written in C.