NIntegrate
owns the attribute HoldAll
:
Attributes@NIntegrate
(* {HoldAll, Protected} *)
However, when reading this answer, I surprisingly noticed that at least in the following case the 1st argument of NIntegrate
is actually evaluated!:
NIntegrate[BesselJ[9/2, x], {x, 1, 2}] // Trace
So my question is, does NIntegrate
always evaluates its 1st argument? If the answer is Yes, what's the meaning of this design, why not simply use HoldRest
?