| MAX -> any | The maximum integer value. |
|---|---|
| MIN -> any | The minimum integer value. |
| MIN-8 -> any | The minimum signed 8-bit integer value. |
| MAX-8 -> any | The maximum signed 8-bit integer value. |
| MIN-16 -> any | The minimum signed 16-bit integer value. |
| MAX-16 -> any | The maximum signed 16-bit integer value. |
| MIN-24 -> any | The minimum signed 24-bit integer value. |
| MAX-24 -> any | The maximum signed 24-bit integer value. |
| MIN-32 -> any | The minimum signed 32-bit integer value. |
| MAX-32 -> any | The maximum signed 32-bit integer values. |
| MAX-U8 -> any | The maximum unsigned 8-bit integer values. |
| MAX-U16 -> any | The maximum unsigned 16-bit integer values. |
| MAX-U24 -> any | The maximum unsigned 24-bit integer values. |
| MAX-U32 -> any | The maximum unsigned 32-bit integer values. |
| parse data/Data --radix/int= -> int | Parses the data as an integer. |
| parse data/Data from/int to/int= --radix/int= -> int | |
| parse data/Data --radix/int= [--on-error] -> int | |
| parse data/Data --radix/int= [--if-error] -> int | |
| parse data/Data from/int to/int= --radix/int= [--on-error] -> int |
data[..3]).
int.parse "22" // => 22
int.parse "-2" // => -2
int.parse "007" // => 7
int.parse "anno 2017" // Error.
int.parse "22" --radix=16 // => 34
int.parse "a" --radix=16 // => 10
int.parse "A" --radix=16 // => 10
< this comparison handles 0.0 and -0.0, such that 0.0.compare-to -0.0 returns 1.
2.compare-to 1 // => 1
1.compare-to 1 // => 0
1.compare-to 2 // => -1
(-0.0).compare-to 0.0 // => -1
2.compare-to float.NAN // => -1
float.INFINITY.compare-to 3 // => 1
float.INFINITY.compare-to float.INFINITY // => 0
3.compare-to float.INFINITY // => -1
MyTime implements a lexicographical ordering of seconds and nanoseconds using compare-to other [--if-equal] to move on to nanoseconds when the seconds component is equal.
class MyTime:
seconds/int
nanoseconds/int
constructor .seconds .nanoseconds:
compare-to other/MyTime -> int:
return seconds.compare-to other.seconds --if-equal=:
nanoseconds.compare-to other.nanoseconds
(0x00FF).count-leading-zeros // => 56
(0x0025).count-leading-zeros // => 58
(0).count-leading-zeros // => 64
int.MIN.count-leading-zeros // => 0
int.MAX.count-leading-zeros // => 1
(0b101000).count-trailing-zeros // => 3
(0b101100).count-trailing-zeros // => 2
(0b101010).count-trailing-zeros // => 1
(0b101101).count-trailing-zeros // => 0
(0).count-trailing-zeros // => 64
int.MIN.count-trailing-zeros // => 63
int.MAX.count-trailing-zeros // => 0
(0b101101).parity // => true
(0b101100).parity // => false
(0b101110).parity // => true
(0b101111).parity // => false
(0).parity // => true
(-1).parity // => true
int.MIN.parity // => false
int.MAX.parity // => false
(0b101101).parity // => false
(0b101100).parity // => true
(0b101110).parity // => false
(0b101111).parity // => true
(0).parity // => false
(-1).parity // => false
int.MIN.parity // => true
int.MAX.parity // => true
8.is-aligned 2 // => true
4.is-aligned 4 // => true
16384.is-aligned 4096 // => true
0.is-aligned 4096 // => true
2.is-aligned 1024 // => false
3.is-aligned 2 // => false.
2.is-aligned 3 // Error.
n such that the integer is equal to 2**n.
1.is-power-of-two // => true
2.is-power-of-two // => true
4.is-power-of-two // => true
1096.is-power-of-two // => true
0.is-power-of-two // => false
(-2).is-power-of-two // => false
1.is-power-of-two // => false
14.is-power-of-two // => false
46 - 2 // => 44
1.0 - 3.0 // => -2.0
1 - 1.1 // => -0.10000000000000008882
int.MAX - (-1) // => -9223372036854775808
int.MIN - 1 // => 9223372036854775807
1 - float.NAN // => float.NAN
float.NAN - 1 // => float.NAN
float.NAN - float.NAN // => float.NAN
float.INFINITY - 1 // => float.INFINITY
float.INFINITY - float.INFINITY // => float.NAN
7 * 9 // => 63
-12 * 3 // => -36
2.0 * 3.0 // => 6.0
2 * 1.1 // => 2.2000000000000001776
-1 * int.MAX // => -9223372036854775807
-1 * int.MIN // => -9223372036854775808
1 * float.NAN // => float.NAN
float.NAN * 1 // => float.NAN
float.NAN * float.NAN // => float.NAN
float.INFINITY * 1 // => float.INFINITY
float.INFINITY * float.INFINITY // => float.INFINITY
-1 * float.INFINITY // => -float.INFINITY
float.INFINITY * -float.INFINITY // => -float.INFINITY
46 / 2 // => 23
2.0 / 4.0 // => 0.5
-1 / 3.0 // => -0.33333333333333331483
2 / 0 // Error.
2.0 / 0 // => float.INFINITY
2 / 0.0 // => float.INFINITY
2 / -0.0 // => -float.INFINITY
1 / float.NAN // => float.NAN
float.NAN / 1 // => float.NAN
float.NAN / float.NAN // => float.NAN
float.INFINITY / 2 // => float.INFINITY
float.INFINITY / float.INFINITY // => float.NAN
1 & 1 // => 1
1 & 0 // => 0
0 & 1 // => 0
0 & 0 // => 0
293 & 465 // => 257
0b1111 & 0b1110 // => 14 (0b1110)
0b0001 & 0b1110 // => 0
0b0011 & 0b1110 // => 2 (0b10)
5 % 3 // => 2
-5 % 3 // => -2
5 % -3 // => 2
-5 % -3 // => -2
6 % 1.5 // => 0.0
5.2 % 3 // => 2.2000000000000001776
5 % 0 // => Error.
2.0 % 0 // => float.NAN
2 % 0.0 // => float.NAN
1 % float.NAN // => float.NAN
float.NAN % 1 // => float.NAN
float.NAN % float.NAN // => float.NAN
1 ^ 1 // => 0
1 ^ 0 // => 1
0 ^ 1 // => 1
0 ^ 0 // => 0
293 ^ 465 // => 244
0b1010 ^ 0b0101 // => 15 (0b1111)
0b1010 ^ 0b1010 // => 0 (0b0000)
0b1111 ^ 0b1010 // => 7 (0b0101)
1 + 1 // => 2
1.0 + 1.0 // => 2.0
1 + 1.1 // => 2.1000000000000000888
int.MAX + 1 // => -9223372036854775808
int.MIN + (-1) // => 9223372036854775807
1 + float.NAN // => float.NAN
float.NAN + 1 // => float.NAN
float.NAN + float.NAN // => float.NAN
float.INFINITY + 1 // => float.INFINITY
float.INFINITY + -float.INFINITY // => float.NAN
1 < 1 // => false
1 < 2 // => true
2 < 1 // => false
12.3 < 12.3 // => false
0.0 < 12.3 // => true
1.2 < 0.0 // => false
0.0 < -0.0 // => false
-0.0 < 0.0 // => false
12 < 123.0 // => true
12.34 < 123 // => true
1234 < 123.0 // => false
1.2 < 1 // => false
float.NAN < float.NAN // => false
1 < float.NAN // => false
float.NAN < 1.0 // => false
float.MAX-FINITE < float.INFINITY // => true
float.NAN < float.INFINITY // => false
float.INFINITY < float.NAN // => false
0 << 2 // => 0
1 << 2 // => 4
1 << 10 // => 1024
1 << 62 // => 4611686018427387904
1 << 63 // => -9223372036854775808
1 << 64 // => 0
-1 << 2 // => -4
-1 << 9 // => -512
-1 << 63 // => -9223372036854775808
-1 << 0 // => 0
1 <= 1 // => true
1 <= 2 // => true
2 <= 1 // => false
12.3 <= 12.3 // => true
0.0 <= 12.3 // => true
1.2 <= 0.0 // => false
0.0 <= -0.0 // => true
12 <= 123.0 // => true
12.34 <= 123 // => true
32.0 <= 32 // => true
32 <= 32.0 // => true
1234 <= 123.0 // => false
1.2 <= 1 // => false
float.NAN <= float.NAN // => false
1 <= float.NAN // => false
float.NAN <= 1.0 // => false
float.MAX-FINITE <= float.INFINITY // => true
float.NAN <= float.INFINITY // => false
float.INFINITY <= float.NAN // => false
1 == 1 // => true
1 == 2 // => false
2 == 1 // => false
12.3 == 12.3 // => true
0.0 == 12.3 // => false
1.2 == 0.0 // => false
0.0 == -0.0 // => true
123 == 123.0 // => true
1.0 == 1 // => true
float.NAN == float.NAN // => false
1 == float.NAN // => false
float.NAN == 1.0 // => false
float.INFINITY == float.INFINITY // => true
1 > 1 // => false
1 > 2 // => false
2 > 1 // => true
12.3 > 12.3 // => false
0.0 > 12.3 // => false
1.2 > 0.0 // => true
-0.0 > 0.0 // => false
12 > 123.0 // => false
12.34 > 123 // => false
32.0 > 32 // => false
32 > 32.0 // => false
1234 > 123.0 // => true
1.2 > 1 // => true
float.NAN > float.NAN // => false
1 > float.NAN // => false
float.NAN > 1.0 // => false
float.MAX-FINITE > float.INFINITY // => false
float.NAN > float.INFINITY // => false
float.INFINITY > float.NAN // => false
1 >= 1 // => true
1 >= 2 // => false
2 >= 1 // => true
12.3 >= 12.3 // => true
0.0 >= 12.3 // => false
1.2 >= 0.0 // => true
-0.0 >= 0.0 // => true
12 >= 123.0 // => false
12.34 >= 123 // => false
32.0 >= 32 // => true
32 >= 32.0 // => true
1234 >= 123.0 // => true
1.2 >= 1 // => true
float.NAN >= float.NAN // => false
1 >= float.NAN // => false
float.NAN >= 1.0 // => false
float.MAX-FINITE >= float.INFINITY // => false
float.NAN >= float.INFINITY // => false
float.INFINITY >= float.NAN // => false
16 >> 0 // => 16
16 >> 1 // => 8
16 >> 4 // => 1
16 >> 5 // => 0
-16 >> 1 // => -8
-16 >> 4 // => -1
-16 >> 5 // => -1
16 >>> 0 // => 16
16 >>> 1 // => 8
16 >>> 4 // => 1
16 >>> 5 // => 0
-1 >>> 0 // => -1
-16 >>> 1 // => 9223372036854775800
-1 >>> 1 // => 9223372036854775807 (int.MAX)
-16 >>> 60 // => 15
-16 >>> 64 // => 0
1 | 1 // => 1
1 | 0 // => 1
0 | 1 // => 1
0 | 0 // => 0
293 | 465 // => 501
0b1100 | 0b0011 // => 15 (0b1111)
0b1010 | 0b0011 // => 11 (0b1011)
~0 // => -1 (0xffff_ffff_ffff_ffff)
~1 // => -2 (0xffff_ffff_ffff_fffe)
(0b101101).parity // => 0
(0b101100).parity // => 1
(0b101110).parity // => 0
(0b101111).parity // => 1
(0).parity // => 0
(-1).parity // => 0
int.MIN.parity // => 1
int.MAX.parity // => 1
(0b100001).population-count // => 2
(0b101100).population-count // => 3
(0b101110).population-count // => 4
(0b101111).population-count // => 5
(0).population-count // => 0
(-1).population-count // => 64
int.MIN.population-count // => 1
int.MAX.population-count // => 63
count := 0
3.repeat: count++
print count // >> 3
count = 0
0.repeat: count++
print count // >> 0
count = 0
(-1).repeat: count++
print count // >> 0
255.sign-extend --bits=8 // => -1
128.sign-extend --bits=8 // => -128
127.sign-extend --bits=8 // => 127
2.to-float // => 2.0
2.1.to-float // => 2.1
9223372036854775807.to-float // => 9223372036854775808.0
0.stringify 2 // => 0
7.stringify 2 // => 111
32.stringify 32 // => 10
42.stringify 16 // => 2a
-1.stringify 8 // => -1
-9.stringify 8 // => -11
35.stringify 36 // => z