Using Function References
Functions can be used just like any other type object
(defun combiner (x)
(typecase x (number #'+) (list #'append) (t #'list)))
COMBINER
USER(49): (defun combine (&rest args)
(apply (combiner (first args)) args))
COMBINE
USER(50): (combine 2 3)
5
USER(51): (combine '(a b) '(c d))
(A B C D)
USER(54): (combine 'a 'b 'c)
(A B C)