In version 10, Mathematica not only added Inactive / Activate but also highlighted this change in the "New in 10" page (in Core Language Enhancements). Thus, I suppose it should be something useful. However, I didn't understand in which sense it is better than the good old Hold (HoldForm) / ReleaseHold mechanism. I noticed a few differences, but all of those are minor:
(1) Inactive objects are printed in a lighter color. HoldForm objects are printed in normal color.
(2) There is an IgnoringInactive function to include inactive objects into pattern matching.
It would be nice to hear if there are more important differences.
HoldandReleaseHold, but instead do something new and parallel? – Yi Wang Jul 11 '14 at 17:39Unevaluatedalso exists.) – mfvonh Jul 11 '14 at 20:04Hold[A,B]Already has a working definition (it will hold the sequence of elements), so if you add some sort of tags functionality toHoldyou need to either get really creative or break backwards compatibility. But really, I don't think that there is any reason why Inactivate couldn't just wrap holds around heads and activate remove these holds. But personally I prefer the distinction. – jVincent Jul 11 '14 at 20:24HoldwithSetAttributes[MakeHeld, HoldAll]; MakeHeld[a_[b___]] := MakeHeld[a][b]; MakeHeld[a_] := Hold[a]? – celtschk Jul 21 '14 at 20:34IgnoringInactive). – mfvonh Jul 23 '14 at 13:23