HoldForm[0] (???)

*To*: mathgroup at smc.vnet.net*Subject*: [mg113898] HoldForm[0] (???)*From*: kj <no.email at please.post>*Date*: Wed, 17 Nov 2010 05:30:54 -0500 (EST)

I came across this puzzling bit while inspecting a trace: In[416]:= Quiet[InputForm[Trace[First[]][[2, 1]]]] Out[416]//InputForm= HoldForm[Message[First::argx, HoldForm[First], HoldForm[0]]] That HoldForm[0] mystifies me. It looks completely unnecessary. What harm could come from evaluating 0 in this case? It can't possibly be slower than "evaluating" HoldForm[0]. By the same token, HoldForm[First] looks almost as unnecessary. (I suppose that there could be some bizarre situation in which First won't evaluate to First, but I have a hard time imagining it.) kj PS: FWIW, First::argx gets interpreted as General::argx, which evaluates to "`1` called with `2` arguments; 1 argument is expected."