Any
Mathematica symbol can have both a variety of types of values, and a variety of independently settable attributes that define overall aspects of its behavior.
Attributes — find the attributes of a symbol
Listable — automatically thread over lists appearing in arguments
Flat — make
f[f[a], b] equivalent to
f[a, b], etc. (associativity)
Orderless — make
f[b, a] equivalent to
f[a, b], etc. (commutativity)
OneIdentity — treat
f[a] as equivalent to
a, etc. (idempotence)
Function Argument Evaluation
Numeric-Related Properties
NumericFunction — treat as a numeric function
Constant — treat as a constant in differentiation, etc.
Stub — stub created by
DeclarePackage, etc.
Temporary — temporary local variable from
Module, etc.
Protected — keep protected against redefinition
Locked — keep all attributes locked (settable but not clearable)
Function — a pure function, potentially with attributes