/* syntax for quickly typed simple functions and more involved functions by returning a language construct */ simple(x) => x+2 complex(x) => do: x = x+2 return x ; many_args(...) => do: return args /* array of arguments */ ; /* example of an iterator */ ArrayIterator(some_array) => for elem in some_array: yield elem ; /* Object from dictionary, dictionaries can be accessed using the '.' notation assuming there are valid characters in them. Do not confuse this with real objects! */ Object(d:dict) => do: this = d if !("construct" in this): this.construct = () => null ; return (...) =>do: apply(this.construct, args) return this ; ; ArrayIterator = Object({ ls: null, ln: 0, i: 0, construct: (ls:list) => do: this.ls = ls; this.ln = length(ls) ;, next: () => do: if this.i in this.ls: return this.ls[this.i++] ; error: 0; /* note: error would be a construct like 'do', thus allowing for interesting errors! This is a sort of break/return. */ ;, /* etc */ })