Code: Select all
(apply case '(1 (1 2)))
(case 1 (1 2))
Code: Select all
(apply case '(1 (1 2)))
(case 1 (1 2))
Code: Select all
(define-macro (myapply func arglist)
(eval (cons func (eval arglist))))
Code: Select all
(apply case '(1 (1 2)))
So perhaps my previous suggestion was wrong... :-(apply should only be used on functions and operators that evaluate all of their arguments, not on special forms like setq or case, which evaluate only some of their arguments. Doing so will cause the function to fail.