This question already has an answer here:
HoldComplete[2 3 3] will return
HoldComplete[2 3 3].
HoldComplete[b a] will return
Everything works fine here, no replacement rules called, no evaluation done, the
Flat attribute didn't apply.
but things get weird when we evaluate
HoldComplete[a 2 1 2]:
The desired result shall be
HoldComplete[a 2 1 2] as no modification should be done here, however, the result is
HoldComplete[a 2 2], it seems that the
1 is magically omitted as it's not important here in multiplication!
How could this happen? Is this a bug? How can I solve this problem?