Leonid Shifrin once wrote (excerpted):
(
Unevaluated
) is one of a very few "magic symbols", along withSequence
andEvaluate
- these are deeply wired into the system and can not be easily replicated or blocked, unlikeHold
- in that sense,Unevaluated
is more fundamental.
HoldPattern
is a normal (usual) head withHoldAll
attribute for the purposes of evaluation, but its magic shows in the pattern-matching: it is invisible to the pattern-matcher, and is very important ingredient of the language since it allows pattern-matcher to be consistent with the evaluation process.
David B. Wagner writes:
The symbols
Evaluate
,Unevaluated
, andSequence
are magic cookies. This is a whimsical term used by computer scientists to refer to any type of value that has special significance to the software system of which it is a part. The behavior of these symbols is not the result of any values or attributes they possess; rather, it is "wired into" the kernel. This implies these behaviors simply cannot be altered, nor can they be duplicated.
These are fundamental to the language but they are not widely recognized as such. I have never attempted to make an exhaustive list of these "magic Symbols" but I think it would be useful to the community to have one.
What are all the "magic" Symbols in the Mathematica language?
What makes each of these Symbols special?
- I believe these should be considered distinct from atomic objects, which while also being "deeply wired into the system" and "not easily replicated" are a form of data types with special handling.
A related question with a somewhat different scope:
Comments
Post a Comment