Datenstrukturen / Listen

Listen

Ein sehr wichtiges und zentrales Element in JayMo sind Listen.

Erzeugen

Klassisch wird eine neue Liste über den Typ "List" erzeugt:

List

Um eine Liste bereits beim Erstellen mit Werten zu füllen, können verschiedene Objekte übergeben werden:

List( 4, 9, 5, 2, 8, 5 )

Als Kurzforn lässt sich eine neue Liste mit eckigen Klammern erzeugen:

[]
[ 4, 9, 5, 2, 8, 5 ]

Alternativen

Falls eine Liste mit "nil"-Werten benötigt wird ist folgendes möglich:

10 * nil
nil * 10

Beide Zeilen erzeugen eine Liste mit 10 mal "nil".

Verwendung

Mit einer Liste lassen sich nun viele tolle Sachen machen. 😉

[ 4, 9, 5, 2, 8, 5 ].uniq.sort.reverse

Hier wird eine Liste mit einigen Zahlen erstellt, doppelte Einträge entfernt (uniq), die Liste sortiert (sort) und der Inhalt umgedreht (reverse).

Mit der "get"-Funktion kann auf ein Element in der Liste zugegriffen werden:

[ 4, 9, 5, 2, 8, 5 ].sort.get( 2 )

Hier wird die Liste sortiert und das zweite Objekt ausgegeben.

Wichtig
JayMo verwendet Positionen und keinen Index!
1 ist somit das erste Objekt, 2 das Zweite und so weiter.

Positive Zahlen zählen von links, negative Zahlen von rechts.
So lässt sich mit -1 das letzte Objekt abfragen. Mit -2 wird das vorletzte Objekt zurückgegeben.

[ 4, 9, 5, 2, 8, 5 ].get( -2 ).print

Each

Um alle Objekte nach einander zu durchlaufen, wird each verwendet.

JayMo-Classic

l = [ 4, 9, 5, 2, 8, 5 ]

Each( l )
	Print it

JayMo-Flow

[ 4, 9, 5, 2, 8, 5 ].each.print

Nach der "each"-Funktion lassen sich weitere Funktionen anhängen. In diesem Fall wird mit "print" die Zahl ausgegeben.

Änderungen verhindern

Mit der Funktion ".fix" lässt sich die Länge einer Liste fixieren. Danach ist es somit nicht mehr möglich hinzuzufügen oder zu entfernen. Wobei die Werte immer noch ausgetauscht werden können.

l = [ 2,5,8 ]
l.fix

Um eine Liste nur noch lesbar zu machen, kann die Funktion ".freeze" aufgerufen werden. Hiermit wird die Liste eingefroren und ist somit nur noch lesbar.

l = [ 2,5,8 ]
l.freeze
- Powered by OghsWiki -

 

 

Unterstützen

Die Entwicklung von "JayMo" wird derzeit nur durch Eigeninitiative ermöglicht.

Erhalten:  0 €