use "math" use "std" use "functional" word = 2 + 2 word2 = PI + word str = "a" * 5 + "ba" * 7 + "\n" println str * "3" * 2 println "word = " + word println "word2 = " + word2 println "1" > "abc" if (1 <= 2) println "1 = 1" else println "1 != 1" if (40 < 50 || 50 > 60) { println "true1" println "true2" i = 0 println "do while" do { println "i = " + i i = i + 1 } while (i < 10) i = 0 println "while" while (i < 10) { println "i = " + i + sin(i) i = i + 1 } println "for" for i = 0, i < 10, i = i + 1 { println "i = " + i } } else print "false" print "sin(PI) = " + sin(PI/2) echo(1,2,3,"4","5","text",sin(0),cos(0),sin(PI),cos(PI),PI) a = "print" print a def name(a,b) { echo("a = ", a, " b = ", b) } def sum(a,b) { a = -60 return a+b } name(1,"text") print sum(10, 15) print a + "\n" arr = [1, "text", sum(10, 15), [], ["text", [90, [7 + 6, [50]]]]] println arr + "\n" arr[0] = arr[0] + 1000 + arr[2] print arr + "\n" print arr[4][1] + "\n" arr[4][1] = "text" println arr[4][1] print "\n\n" array = newarray(2, 2, 2, 2) println array add = def(a,b) = a+b sub = def(a,b) = a-b mul = def(a,b) = a*b div = def(a,b) = a/b cube = def(x) = x*mul(x, x) print "\n\n" println mul(8, 5) println cube(2) functions = [add, sub, mul, div] def function(f, a, b) = f(a, b) for i = 0, i < 4, i = i + 1 { println functions[i] println function(functions[i], 6, 3) } // map map = {"+" : add, "-" : sub. "*" : mul, "/" : div} map["%"] = def(x,y) = x % y map["pow"] = def(x,y) = pow(x, y) println map["+"] println function(map["+"], 4, 5) foreach(map, def(op, func) = echo (4, op, 5, "=", func(4,5))) foreach(arr, ::echo) arr1 = [1,2,3] arr1 = arr1 :: 4 arr2 = [5,6,7] println arr1 println arr1 << arr2 for op, func : map { echo (4, op, 5, "=", func(4,5)) } for v : arr1 print "" + v + ", " print "\n" for (v : arr1 << arr2) print "" + v + ", " print "\n" for v : [1,2,3,4,5,6,7,8,9] print "" + v + ", " use "types" println typeof(1) println typeof("1") println typeof(arr1) println typeof({}) println typeof(add) println typeof(number("1")) println typeof(string(1)) thread(::inthread) def inthread() = echo("this is a thread") thread(def (str) { println str }, "this is a thread with arguments") println "functional" nums = [1,2,3,4,5,6,7,8,9,10] nums = filter(nums, def(x) = x % 2 == 0) squares = map(nums, def(x) = x * x) foreach(squares, ::echo) println "Sum: " + reduce(squares, 0, def(x, y) = x + y) use "http" /*http("http://jsonplaceholder.typicode.com/users", "POST", {"name": "OwnLang", "versionCode": 10}, def(v) { println "Added: " + v http("http://jsonplaceholder.typicode.com/users/2", "PATCH", {"name": "Patched Name"}, ::http_get_demo) }) def http_get_demo(v) { println "Updated: " + v http("http://jsonplaceholder.typicode.com/users", ::echo) }*/ use "json" println "json" println jsonencode({ "name": "JSON Example", "version": 1, "arrayData": [ 1, 2, 3, 4 ], "objectData": { "key": "value", 10: "1000" } })