Blöcke beinhalten eine Reihe von Anweisungen, die als Token codiert sind. Dabei besteht zur Laufzeit die Möglichkeit, ein Block zu modifizieren, aufzurufen und lesbar auszugeben.
Bezeichner: block
Standardweise wird ein Block immer mit geschweiften Klammern umgeben.
my block = {
x++
out x
}
Wird ein String in einen Block umgewandelt, so wird dieser String in einen ausführbaren Block übersetzt. Eine Funktion/ein Zeiger wird zu einem Block mit dem Aufruf der gegebenen Adresse.
out "y = x²".block '= { y = x ** 2 }
out @map.block '= { @map\ }
this:call(...)
Ruft alle Anweisungen des Blocks auf und übergibt die angegebenen Parameter weiter. Die Parameter können durch "pop" ermittelt werden. Alle Variablen, die in den oberen Ebenen des Aufrufs definiert sind, können im Block verwendet werden.
inc = { a++ ; b++ }
add = { a += pop; b += pop }
a = 0
b = 0
inc:call
out a, b '= 1, 1
add:call(2, -1)
out a, b '= 3, 0
(3inc + { a-- }):call
out a, b '= 5, 3
foreach(f.block){
arguments for[x]{
f:call
}
}
foreach({out x²}, 1, 2, 3)
'Ausgabe: 1, 4, 9