3 ms·
> If dealing with a function, the evaluation will always be arguments from left to right are evaluated first, and then the function is called with the result of
by kbp 9y ago
> If dealing with a function, the evaluation will always be arguments from left to right are evaluated first, and then the function is called with the result of evaluating the args. This is 95% of the cases.
> If dealing with a macro, go read the documentation for it, because every macro is a DSL, and evaluation can happen in different ways. This is the 5% case.
Not arguing with your point, but just for fun:
CL-USER> (let ((functions 0) (specials 0))
(do-external-symbols (symbol (find-package :cl))
(cond ((or (macro-function symbol)
(special-operator-p symbol))
(incf specials))
((fboundp symbol)
(incf functions))))
(/ (* specials 100.0)
(+ specials functions)))
15.425532