action
set name indexer? modifier-expression? to value
set string-sink-function-call to value
In the first form, set assigns a value to a shelf item; the shelf item's previous value is replaced
with the new value.
import "ombcd.xmd" unprefixed process local integer i local string s local switch w local bcd x set i to 78 set s to "Hello, World!%n" set w to true set x to 10.56
The value appearing on the right-hand side of a set must have the correct type for the shelf
item appearing on the left-hand side of the set, or a conversion function must
exist that can convert an instance of right-hand side's type to an instance of the left-hand side's type:
define string conversion-function value switch w as return w -> "TRUE" | "FALSE" process local string s local switch w initial { true } set s to w
In the second form, set invokes the given string sink function; within the function
invocation, #current-input is initially set to value.
define string sink function hexify (value string sink s) as using output as s repeat scan #current-input match any => t output "16r2fzd" % binary t again process set hexify (#main-output) to "Hello, World!%n"
When the type of the shelf item on the left-hand side is stream, set is equivalent to an
open of the stream, writing to the stream, then a close. For this reason, any
modifiers that can be used with open can also be used with set:
process local stream s size 2 set s[1] with referents-allowed defaulting { "" } to "Hello, World!%n" set s[2] with referents-displayed to s