Own-Programming-Language-Tu.../examples/basics/operator_overloading.own

16 lines
348 B
Plaintext

use ["std", "types", "math"]
println "Operator overloading"
def `::`(v1, v2) = string(v1) + string(v2)
print "1 :: 2 :: 3 = "
println 1 :: 2 :: 3
def `^`(v1, v2) = pow(v1[0], v2[0])
print "[2] ^ [7] = "
println [2] ^ [7]
def `..`(a, b) = range(a, b)
def `**`(a, b) = int(pow(a, b))
for y : 1 .. 10 {
println sprintf("2 ^ %d = %d", y, 2 ** y)
}