Symbol
Type
The Symbol
type is used to represent Number
values with a unit, e.g. for money, weight, length, etc.
A symbol is defined by the keyword symbol
followed by a text string which represents the symbol type.
symbol chf;
For a variable declaration, the type of an amount in chf
is simply chf
.
var moneyOwed = chf(2);
A chf
literal is instantiated using chf(<number>)
.
The Symbol
type can be thought of as amounts that have symbols associated with them. The actual type of e.g. chf(10)
is Symbol<chf>
.
Methods
divideBy
<function>
Receiver
Symbol<T>
Type Arguments
T - user-defined symbol
Arguments
other - Number - number to divide this symbol amount with
Returns
Symbol<T> - a symbol of type T
containg the value of dividing this
with other
Usage
chf(20) / 2 == chf(10)
greaterThan
<function>
Compare two amounts. Infix operator: >
.
Receiver
Symbol<T>
Type Arguments
T
Arguments
other - Symbol<T>
Returns
Boolean - true
if this
is greater than other
, otherwise false
greaterThanOrEqual
<function>
Compare two amounts. Infix operator: >=
.
Receiver
Symbol<T>
Type Arguments
T
Arguments
other - Symbol<T>
Returns
Boolean - true
if this
is greater than or equal to other
, otherwise false
lessThan
<function>
Compare two amounts. Infix operator: <
.
Receiver
Symbol<T>
Type Arguments
T
Arguments
other - Symbol<T>
Returns
Boolean - true
if this
is less than other
, otherwise false
lessThanOrEqual
<function>
Compare two amounts. Infix operator: <=
.
Receiver
Symbol<T>
Type Arguments
T
Arguments
other - Symbol<T>
Returns
Boolean - true
if this
is less than or equal to other
, otherwise false
minus
<function>
Receiver
Symbol<T>
Type Arguments
T - user-defined symbol
Arguments
other - Symbol<T> - symbol amount to subtract from this symbol amount
Returns
Symbol<T> - a symbol of type T
containg the value of subtracting other
from this
Usage
chf(10) - chf(5) == chf(5)
multiplyBy
<function>
Receiver
Symbol<T>
Type Arguments
T - user-defined symbol
Arguments
other - Number - number to multiply with this symbol amount
Returns
Symbol<T> - a symbol of type T
containg the value of multiplying this
with other
Usage
chf(2) * 5 == chf(10)
negative
<function>
Receiver
Symbol<T>
Type Arguments
T - user-defined symbol
Returns
Symbol<T> - the negation of this symbol
Usage
chf(-7).negative() == chf(7)
plus
<function>
Receiver
Symbol<T>
Type Arguments
T - user-defined symbol
Arguments
other - Symbol<T> - symbol amount to add to this symbol amount
Returns
Symbol<T> - a symbol of type T
containing the value of other
added to this
Usage
chf(5) + chf(5) == chf(10)
remainder
<function>
Receiver
Symbol<T>
Type Arguments
T - user-defined symbol
Arguments
other - Number - number to use as divisor for this symbol amount
Returns
Symbol<T> - a symbol of type T
containg the remainder of the division of this
with other
Usage
chf(7) % 5 == chf(2)
toNumber
<function> Drops the unit from this symbol, leaving only its numerical value.
Receiver
Symbol<T>
Type Arguments
T - user-defined symbol
Returns
Number - the Number
value of the Symbol
Usage
chf(10).toNumber() == 10
unit
<function>
Receiver
Symbol<T>
Type Arguments
T - user-defined symbol
Returns
Text - the unit of T
as a Text
representation
Usage
chf(10).unit() == "chf"
Inherited methods
toText
<function>
Obtain the Text
representation of this
.
Receiver
T
Type Arguments
T
Returns
Text - the Text
representation of this
Usage
chf(10).toText() == "10<chf>"
sum
<function>
Returns the sum of all amounts in the collection. sum()
applied to an empty list returns an amount of 0.
Receiver
Collection<Symbol<T>>
Type Arguments
T - the element type
Returns
Symbol<T> - the total of all amounts in the collection
Usage
listOf(chf(10), chf(10)).sum() == chf(20)
listOf<chf>().sum() == chf(0)