Maple behandelt Folgen, Listen und Mengen als spezielle Datentypen.
Eine Folge (sequence) ist eine geordnete Menge von Ausdrücken, die durch Kommas getrennt sind.
Folgen können auf verschiedene Arten generiert werden:
1. Mit dem Komma-Operator: Die Ausdrücke werden durch Kommas getrennt nacheinander eingegeben.
> expression1 , expression2 , expression3;
2. Mit dem $-Operator: Wenn eine Bildungsvorschrift für die Folge bekannt ist, kann der $-Operator benutzt werden.
> expression $ var = n .. m ;
Der Ausdruck expression wird wiederholt, wobei die Variable var die (ganzzahligen) Werte n bis m annimmt.
![]() |
Bei der Erzeugung einer Folge mit dem $-Operator darf keineVariable benutzt werden, der bereits ein Wert zugewiesen wurde. Um sicherzugehen, sollte die Variable stets in single quotes (zur Nicht-Auswertung) gesetzt werden! |
![]() |
Anwendung des Komma-Operators und des $-Operators |
3. Mit der seq-Funktion: Dies ist ebenfalls sinnvoll, wenn eine Bildungsvorschrift vorliegt.
> seq(expression , var = n .. m) ;
Wie beim $-Operator wird auch hier der Ausdruck expression mit (ganzzahligen) Werten für die Variable var von n bis m wiederholt.
Außerdem gibt es eine zweite Form, bei der der unten näher beschriebene Datentyp Liste benutzt wird.
> seq(expression , var = liste) ;
In diesem Fall durchläuft die Variable var alle Werte der Liste liste.
![]() |
Bei der Erzeugung einer Folge mit der seq-Funktion kann eine beliebige Variable benutzt werden, auch wenn ihr vorher ein Wert zugewiesen worden war. In Release 3 hat die Variable allerdings nach dem Aufruf der seq-Funktion stets den letzten Wert, den sie innerhalb der seq-Funktion angenommen hatte! Mit Release 4 ist diese Schwäche behoben. |
Die Erzeugung von Folgen mit $ und/oder seq kann beliebig geschachtelt werden.
Auf die Folgenglieder kann einzeln zugegriffen werden. Wenn der Variablen a eine Folge zugewiesen wurde, wird das i-te Folgenglied mit a[i] bezeichnet. Die Numerierung beginnt dabei mit 1!
![]() |
Die Erzeugung von Folgen mit der seq-Funktion und der Zugriff auf einzelne Folgenglieder |
Eine Liste ist eine Folge, die in eckige Klammern eingeschlossen ist. Listen sind also geordnet. Sie können beliebig geschachtelt werden.
Eine Liste (list) kann aus einer Folge generiert werden. Dazu ist lediglich die Folge in eckige Klammern einzuschließen.
Die zur Liste gehörige Folge kann mit der op-Funktion extrahiert werden:
> op(Liste);
liefert die zur Liste gehörige Folge. Die op-Funktion kann auch benutzt werden, um eine Liste um Elemente zu erweitern:
> [ op(liste) ,elementn, ... elementn+m];
![]() |
Die Benutzung einer Liste in der seq-Funktion, der Zugriff auf Listenelemente und die Erweiterung einer Liste |
Eine Menge (set) ist eine Menge im herkömmlichen mathematischen Sinne.
Mengen sind ungeordnet. Der Zugriff auf Mengenelemente per Index ist zwar theoretisch möglich, praktisch aber selten sinnvoll. Die Reihenfolge der Elemente kann sich ändern (und tut dies oft auch), so daß nicht sicher ist, welches Element über den Index tatsächlich angesprochen wird.
Mengen können wie Listen beliebig geschachtelt werden.
Eine Menge kann, ähnlich wie eine Liste, aus einer Folge generiert werden. Dabei wird die Menge durch Einschließen der Folge in geschweifte Klammern gebildet.
Für Mengen sind eine Reihe von Operatoren vordefiniert:
member | ist Element von |
union | vereinigt mit |
intersect | geschnitten mit |
minus | ohne |
![]() |
Mengen und einige Mengenoperationen |
Um diese Datentypen zu konvertieren, können Klammern und die op-Funktion benutzt werden. Teilweise kann außerdem die convert-Funktion benutzt werden.
Konvertierung | sequence | list | set |
sequence | - | [sequence] | {sequence} |
list | op(list) | - | {op(list)} oder convert(list,set) |
set | op(set) | [op(set)] oder convert(set,list) |
- |
![]() |
Bei der Konvertierung von Folgen oder Listen in Mengen ist stets zu beachten, daß Mengen im Gegensatz zu den Datentypen list und sequence ungeordnet sind. Eine eventuelle Reihenfolge und doppelte Elemente gehen dabei also verloren. |
![]() |
Das Sieb des Eratosthenes |