cast
cast provides support for type casting in Rex.
Casting functions
str
& str type -> str
str x = str(x)
This casts a value of any type into a string using Python's str function.
int
& int type -> int
int x = int(x)
This casts a value of any type into an integer using Python's int function. On failure, it will throw a typeErr.
num
& num type -> num
num x = float(x)
This casts a value of any type into a number using Python's float function. On failure, it will throw a typeErr.
float
& float type -> float
float x = float(x)
This casts a value of any type into a floating-point number using Python's float function. On failure, it will throw a typeErr.
whole
& whole type -> whole
whole x =
| int(x) if >= int x 0
| error typeErr . . "Cannot cast " x " to a whole number" otherwise
This casts a value of any type into a whole number using Python's int function. If the argument cannot be cast to an integer or if it is negative after being cast to an integer, a typeErr is thrown.
natural
& natural type -> natural
natural x ==
| int(x) if > int x 0
| error typeErr . . "Cannot cast " x " to a natural number" otherwise
This casts a value of any type into a natural number using Python's int function. If the argument cannot be cast to an integer or if it is negative or zero after being cast to an integer, a typeErr is thrown.
bool
& bool type -> bool
bool x ==
| bool(x) if || || || == x "True" == x "False" == x 0 == x 1
| error typeErr . . "Cannot cast " x " to a Boolean" otherwise
This casts a value of any type into a Boolean using Python's bool function. It will perform the cast if the argument is "True", "False", 0 or 1, otherwise it will throw a typeErr.