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.

DetailsDetails

  • Flat corresponds to the mathematical property of associativity.
  • For a symbol f with attribute Flat, is automatically reduced to .
  • Functions like Plus, Times, and Dot are Flat.
  • For a Flat function f, the variables x and y in the pattern 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.

ExamplesExamplesopen allclose all

Basic Examples  (2)Basic Examples  (2)

Nested expressions with flat functions are flattened out:

In[1]:=
Click for copyable input
In[2]:=
Click for copyable input
Out[2]=

Flat implements the notion of associativity:

In[1]:=
Click for copyable input
Out[1]=
In[2]:=
Click for copyable input
Out[2]=
Introduced in 1988
(1.0)
Translate this page: