# 11 Infix Notations

Oz supports infix and prefix notation for very common procedures (see Section 3.5 of ``The Oz Notation'').

In the following table, we give the prefix and infix notations and the corresponding expansions. The operators are grouped together according to their precedence. Members of the same group have the same precedence, groups further up have lower precedence than groups further down. ``Having higher precedence'' means ``binding tighter''; e. g., the term `X.Y + Z` is equal to `(X.Y) + Z`. Ambiguities within each group are resolved by the associativity given before each group (e. g., `X - Y + Z` is equivalent to `(X - Y) + Z`).

Infix | Normal
--- | ---
right-associative
`X``=` `Y` | `{Value.'='` `X``` `Y``}`
right-associative
`+LI``<-` `X` | `{Object.'<-'` `LI``` `X``}`
`Y``=` `+LI``<-` `X` | `{Object.exchange` `LI``` `X``` `Y``}`
non-associative
`?B``=` `X``==` `Y` | `{Value.'=='` `X``` `Y``` `B``}`
`?B``=` `X``\=` `Y` | `{Value.'\\='` `X``` `Y``` `B``}`
`?B``=` `+AFI1``<` `+AFI2` | `{Value.'<'` `AFI1``` `AFI2``` `B``}`
`?B``=` `+AFI1``=<` `+AFI2` | `{Value.'=<'` `AFI1``` `AFI2``` `B``}`
`?B``=` `+AFI1``>` `+AFI2` | `{Value.'>'` `AFI1``` `AFI2``` `B``}`
`?B``=` `+AFI1``>=` `+AFI2` | `{Value.'>='` `AFI1``` `AFI2``` `B``}`
left-associative
`?FI3``=` `+FI1``+` `+FI2` | `{Number.'+'` `FI1``` `FI2``` `FI3``}`
`?FI3``=` `+FI1``-` `+FI2` | `{Number.'-'` `FI1``` `FI2``` `FI3``}`
left-associative
`?FI3``=` `+FI1``*` `+FI2` | `{Number.'*'` `FI1``` `FI2``` `FI3``}`
`?F3``=` `+F1``/` `+F2` | `{Float.'/'` `F1``` `F2``` `F3``}`
`?I3``=` `+I1` `div` `+I2` | `{Int.'div'` `I1``` `I2``` `I3``}`
`?I3``=` `+I1` `mod` `+I2` | `{Int.'mod'` `I1``` `I2``` `I3``}`
left-associative
`+K``,` `+R` | `{Object.','` `K``` `R``}`
prefix
`?FI1``= ~``+FI2` | `{Number.'~'` `FI2``` `FI1``}`
left-associative
`X``=` `+RC``.``+LI` | `{Value.'.'` `RC``` `LI``` `X``}`
infix
`X``= @``+LI` | `{Object.'@'` `LI``` `X``}`
`X``= !!``Y` | `{Value.'!!'` `X``` `Y``}`