[Contents] · [Home] · [Mail]

SALIERI Language - Operator "+" (_PLUS)

Type:
_PLUS: int x int -> int
_PLUS: real x real -> real
_PLUS: string x string -> string
_PLUS: sequence x sequence -> sequence
_PLUS: segment x segment -> segment
_PLUS: list x list -> list

Call syntax:
_PLUS(x, y)
x + y

Description:
The binary infix operator "+" realises arithmetic addition on integers and reals as well as concatenation on the serial types string, list, and sequence.

On segments, it implements a concatenation on the duration normalised voices. For poly-normalised segments with an identical number of voices, this is done by simply concatening the corresponding pairs of voices into the voices of the result segment. If one or both argument segments are not poly-normalised, i.e., the voices within a segment have different relative durations, an equal duration of all voices is achieved by appending rests as required. If the number of voices of the argument segments is not identical, the one with a smaller number of voices is filled with empty voices (i.e., voices only containing rests).

For the infix operator "+", there is a corresponding predefined function _PLUS, such that a + b and _PLUS(a,b) are equivalent expressions.

In expressions, "+" binds stronger than the relational and equality operators, but weeker than multiplication, division, and the length operator (#).

Example:
> 1+3
Result= 4
> 0.5+10.3
Result= 10.8
> 5+10.3
Result= 15.3
> "abra"+"cadabra"
Result= "abracadabra"
> {[f#/2 g/4 e/2],[c0/1]} + {[c1/2]}
Result= SEGM([ f#1/2 g1/4 e1/2 c1/2 ],[ c0*1 _/4 _/2 ])

See also: segment (Object Type), Operators and Expressions.


[Contents] · [Home] · [Mail]
© sic!systems, page frame designed by hh; this page has been automatically generated from the SALIERI Documentation Database.