ulisp 3.3 on esp32 but it’s likely the same in all versions:
(defun my (x y) (+ x y)) (defvar handlers '(my)) (apply (first handlers) '(0 1)) Error: not valid here: my
With builtins it works as expected:
(defvar handlers '(cons)) (apply (first handlers) '(0 1)) (0 . 1)
Yes I can do (defvar handlers (list my)) but then I lose the ability to easily check later if 'my is in the list.
Or I can do (apply (eval (first handlers)) '(0 1)) but apply should probably evaluate its first argument by default, as it does in common lisp.