diff --git a/examples/functions/function_call_chain.own b/examples/functions/function_call_chain.own new file mode 100644 index 0000000..a3791d4 --- /dev/null +++ b/examples/functions/function_call_chain.own @@ -0,0 +1,3 @@ +def f() = def() = def() = def() = "Function call chaining: f()()()()" + +println f()()()() \ No newline at end of file diff --git a/examples/functions/function_chain.own b/examples/functions/function_chain.own new file mode 100644 index 0000000..c73b16d --- /dev/null +++ b/examples/functions/function_chain.own @@ -0,0 +1,9 @@ +def calc() = { + "add": ::add, + "sub": ::minus +} +def add(x, y) = x + y +def minus(x, y) = x - y + +println calc().add(77, 42) +println calc().sub(77, 42) \ No newline at end of file diff --git a/examples/functions/stream.own b/examples/functions/stream.own new file mode 100644 index 0000000..2deb5cc --- /dev/null +++ b/examples/functions/stream.own @@ -0,0 +1,26 @@ +use "std" +use "functional" + +println "x, square(x), cube(x) for even numbers" +data = [1,2,3,4,5,6,7,8,9] +stream(data) + .filter(def(x) = x % 2 == 0) + .map(def(x) = [x, x * x, x * x * x]) + .sortBy(def(x) = -x[2]) + .forEach(::echo) + + +println "\nReverse custom operator" +data = [2, 4, 6, 5, 12, 34, 0, 18] +rev = stream(data).custom(::reverse).toArray() +println data +println rev + +def reverse(container) { + size = length(container) + result = newarray(size) + for i : range(size) { + result[size - i - 1] = container[i] + } + return result +} \ No newline at end of file diff --git a/examples/java/system_info.own b/examples/java/system_info.own new file mode 100644 index 0000000..d8fc3a0 --- /dev/null +++ b/examples/java/system_info.own @@ -0,0 +1,5 @@ +use "java" +System = newClass("java.lang.System") +println "OS name: " + System.getProperty("os.name") +println "OS version: " + System.getProperty("os.version") +println "User home: " + System.getProperty("user.home") \ No newline at end of file