The Wolfram Language's symbolic architecture supports a highly generalized notion of assignment, in which you can specify a transformation for any class of expressions defined by a Wolfram Language pattern. Simple cases correspond to assignments for "variables", "indexed variables", or "structure elements". Other cases define functions or general transformations.
x = v — assign a value ( Set ) < x , y >= — assign multiple values < x , y >= — swap values a [[ i ]]= v — assign a value to a list/array/expression elementx ++ ( Increment ) ▪ ++ x ( PreIncrement ) ▪ x += y ( AddTo ) x -- ( Decrement ) ▪ -- x ( PreDecrement ) ▪ x -= y ( SubtractFrom ) x *= y ( TimesBy ) ▪ x /= y ( DivideBy ) AppendTo , PrependTo — add elements to a list AssociateTo , KeyDropFrom — modify an association x //= f ( ApplyTo ) — x = f [ x ]
lhs = rhs — immediate assignment, with rhs evaluated at the time of assignment lhs := rhs — delayed assignment, with rhs reevaluated every time it is used
f /: lhs = rhs , f /: lhs := rhs — associate assignments with the head f lhs ^= rhs , lhs ^:= rhs — define "upvalues" associated with the leading head in lhs
x =. — unset the value of x ( Unset ) Clear — clear all values associated with a symbol ClearAll ▪ Remove