This is documentation for Mathematica 6, which was
based on an earlier version of the Wolfram Language.
View current documentation (Version 11.1)

Flat

Flat
is an attribute that can be assigned to a symbol f to indicate that all expressions involving nested functions f should be flattened out. This property is accounted for in pattern matching.
  • Flat corresponds to the mathematical property of associativity.
  • For a symbol f with attribute Flat, f[f[a, b], f[c]] is automatically reduced to f[a, b, c].
  • For a Flat function f, the variables x and y in the pattern f[x_, y_] can correspond to any sequence of arguments.
  • The Flat attribute must be assigned before defining any values for a Flat function.
  • When functions that are Flat are used in pattern matching, they often also require the attribute OneIdentity.
New in 1