3.6 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	
			3.6 KiB
		
	
	
	
	
	
	
	
Operators
Precedence
Same as in C++.
| Priority | Operations | 
|---|---|
| Highest 0  | 
power, not, calls, indexing, dot,... | 
| 1 | % * / | 
| 2 | + - | 
| 3 | bit shifts (NI) | 
| 4 | <=> (1) | 
| 5 | <= >= < > | 
| 6 | == != | 
| 7 | bitwise and & (NI) | 
| 9 | bitwise or | (NI) | 
| 10 | && | 
| 11 lowest  | 
|| | 
- (NI)
 - not yet implemented.
 - (1)
 - Shuttle operator: 
a <=> breturns 0 if a == b, negative Int if a < b and positive Int otherwise. It is necessary to override shuttle operator to make a class comparable. 
Operators
+ - * / % : if both operand is Int, calculates as int. Otherwise, as real:
// integer division:
3 / 2
>>> 1
but:
3 / 2.0
>>> 1.5
Round and range
The following functions return its argument if it is Int,
or transformed Real otherwise.
| name | description | 
|---|---|
| floor(x) | Computes the largest integer value not greater than x | 
| ceil(x) | Computes the least integer value value not less than x | 
| round(x) | Rounds x | 
| x.roundToInt() | shortcut to round(x).toInt() | 
Lyng math functions
| name | meaning | 
|---|---|
| sin(x) | sine | 
| cos(x) | cosine | 
| tan(x) | tangent | 
| asin(x) | sin^{-1}(x) | 
| acos(x) | cos^{-1}(x) | 
| atan(x) | tg^{-1}(x) | 
| sinh(x) | hyperbolic sine | 
| cosh(x) | hyperbolic cosine | 
| tanh(x) | hyperbolic tangent | 
| asinh(x) | sinh^{-1}(x) | 
| acosh(x) | cosh^{-1}(x) | 
| atanh(x) | tgh^{-1}(x) | 
| ln(x) | ln(x), log_e(x) | 
| exp(x) | e^x | 
| log10(x) | log_{10}(x) | 
| pow(x, y) | {x^y} | 
| sqrt(x) |  \sqrt {x} | 
| abs(x) | absolute value of x. Int if x is Int, Real otherwise | 
For example:
assert( sin(π/2) == 1.0)
assert( cos(π/2) < 0.000001)
assert( abs(ln(exp(1))) - 1 < 0.00001)
// abs() keeps the argument type:
assert( abs(-1) is Int)
assert( abs(-2.21) == 2.21 )
>>> void
Scientific constant
| name | meaning | 
|---|---|
Math.PI: Real or π | 
3.1415926... |