Struktur
JayMo hat eine klare Struktur, die sich durch die gesamte Sprache zieht. Als Basis dient immer ein Objekt, bzw. genauer gesagt eine Objekt-Instanz. Ein Objekt bietet verschiedene Funktionen, welche anschließend aufgerufen werden können.
(nachfolgende Beispiele sind Pseudo-Code)
Objekt.funktion
Streams
Da jede Funktion ein neues Objekt, sich selbst oder Nil (ebenso ein Objekt) zurück gibt, können Funktionen flexibel aneinander gehängt werden:
Objekt.funktion.funktion.funktion
Dies kann auch in mehreren Zeilen geschrieben werden:
Objekt
.funktion
.funktion
.funktion
Als Basis dient somit immer ein Objekt, von dem eine Funktion aufgerufen wird. Als Ergebnis kommt ein neues Objekt zurück, mit dem die nächste Funktion aufgerufen wird, usw.:
Objekt --> .funktion --> Objekt --> .funktion --> Objekt --> .funktion --> Objekt --> ...
Blöcke
Jede Funktion kann bei Bedarf auch einen Code-Block besitzen. Ein Block wird mit Tabulator eingerückt:
Objekt
.funktion
Block
.funktion
Block
.funktion
Block
Aufruf / Call
Ein einzelner Befehl (Call) hat somit folgende Elemente:
- Basis-Objekt (mit diesem Objekt beginnt die Verarbeitung.)
- ggf. Argument(e)
- Funktion (was soll getan werden)
- ggf. Argument(e)
- ggf. ein Block
- ggf. ein Stream
Als Block wird ein Bereich bezeichnet, der zum übergeordneten Element mit einem Tabulator eingerückt ist.
Als Stream wird eine weitere Funktion bezeichnet, an die das Endergebnis (Objekt) übergeben wird. Mit diesem beginnt der ganze Ablauf von vorne.