Head
can return any head. There is no predefined list.
expr = myArbitraryHead[1, 2, 3];
Head[expr]
myArbitraryHead
A head does not even need to be a Symbol:
expr2 = (2 Pi)[x, y, z];
Head[expr2]
2 π
Most heads are shown explicitly in the FullForm
of the expression:
FullForm[{"a" + "b", 1/3}]
Head /@ {"a" + "b", 1/3}
List[Plus["a", "b"], Rational[1, 3]]
{Plus, Rational}
Some heads are implicit, such as in the atomic objects String, Integer, and Symbol:
FullForm[{"a", 1, Pi}]
Head /@ {"a", 1, Pi}
List["a", 1, Pi]
{String, Integer, Symbol}
As a side note the head of an expression is also returned when you ask for Part
zero:
3[[0]]
Integer
Because Part
returns sequences wrapped in the original head of the expression you get a strange result if extracting {0}
:
3[[{0}]]
Integer[Integer]