assigns rhs to be the delayed value of lhs, and associates the assignment with symbols that occur at level one in lhs.


open allclose all

Basic Examples  (1)

Scope  (6)

Left-Hand Sides  (5)

An expression with a delayed definition is evaluated every time it is used:

Make definitions for special and general cases using immediate and delayed assignments:

The definition can be associated with a symbol appearing as an argument of the left side:

The definition can be associated with the head of an argument of the left side:

If several symbols appear in the left-hand side, upvalues for all of them are defined:

Different Kinds of Values  (1)

^:= defines upvalues:

Properties & Relations  (6)

^:= defines upvalues in the same way as using a tag does:

A tag defines only one upvalue; ^:= makes definitions for all symbols:

The right side of an immediate definition is evaluated when the definition is made:

The right side of a delayed definition is evaluated each time the definition is used:

Definitions with the same left side overwrite earlier ones:

Definition prints definitions associated with a symbol:

Information prints various information about a symbol, including any definitions:

UpValues returns a list of rules corresponding to any upvalues defined:

Delayed assignment introduces a scope that is not affected by global variables:

Immediate assignment does not introduce a scope:

Introduced in 1988