<< Prev | - Up - |
The data to be sent or to be written consists of a sequence of integers, atoms, floats, and strings. If only strings were allowed to be sent as information, the data would have to be transformed into a string. This would be clumsy and inefficient with regard to both space and time.
Mozart uses virtual strings for this purpose instead. A virtual string is either an atom, a float, an integer, a string, or a tuple with label '#'
, whose subtrees are virtual strings themselves. For instance,
12#(2#fast#4#"U")#~3.1415
is a virtual string. In the above example it is quite clear, that #
stands for concatenation (i. e., for virtual concatenation).
There is predefined functionality for virtual strings, like testing, by IsVirtualString
, converting to a string, by VirtualString.toString
, and changing of signs, by VirtualString.changeSign
. The latter procedure is quite important, because
{Browse 12#(2#fast#4#"U")#~3.1415}
reveals that the usual unary minus sign (i. e., -
) is used rather than the Oz operator ~
.
The procedure VirtualString.changeSign
provides the possibility to choose any virtual string as minus sign in numbers. It takes as input arguments two virtual strings, and substitutes every occurrence of the -
character as a unary minus sign in numbers of the first argument by the second argument. For example,
{VirtualString.changeSign 12#(2#fast#4#"U")#~3.1415 '~'}
returns the virtual string with the Oz-style unary minus sign.
Note that in order to display virtual strings in readable form in the Oz Browser, you have to configure the ``The Oz Browser''. In the following we assume that the Browser is configured for displaying virtual strings.
option, see also<< Prev | - Up - |