Mengen, Listen und Folgen
> restart;
Eine endliche Menge von Zahlen:
> M:= {1, 5, 7, 7, 7, 3, 2, 12};
Die Elemente dieser Menge sind zwar in einer gewissen Reihenfolge gespeichert und hier auch hingeschrieben; dennoch sind die Elemente einer Menge nicht geordnet:
M;
Error, cannot reassign the entries in a set
Eine Liste von Zahlen:
> l:= [1, 5, 7, 7, 7, 3, 2, 12];
Die Elemente einer Liste sind geordnet und indiziert.
Durch diese Indizierung kann man auf jedes einzelne Listenelement zugreifen und auch ändern:
l;
Eine Folge von Zahlen:
f[6]:= 9: # Unzulässiger Zugriff auf f.
f;
Error, invalid assignment (1, 5, 7, 7, 7, 3, 2, 12)[6] := 9;
cannot assign to an expression sequence
1, 5, 7, 7, 7, 3, 2, 12
Elementare Mengenoperationen:
M union {4, 5};
M intersect {2, 3, 4};
is (4 in M);
{} subset M;
nops(M); # Anzahl aller Elemente in M
Verändern von Listen:
l:= subsop(3=NULL, 4=NULL, l);
sort(l, `>`);
l:= [op(l), 13, 14, 14, 14, 5, 9];
Entfernen mehrfach vorkommender Listenelemente:
[1, 5, 7, 9, 2, 12, 13, 14]
Weitergehende Informationen über die Manipulation von Listen:
> ?ListTools;
Einige Befehle des ListTools Package: |
||||
BinaryPlace | BinarySearch | Categorize | DotProduct | Enumerate |
FindRepetitions | Flatten | FlattenOnce | Group | Interleave |
Join | JoinSequence | MakeUnique | Occurrences | Pad |
PartialSums | Reverse | Rotate | Search | SearchAll |
SelectFirst | SelectLast | Sorted | Split | Transpose |
Operationen auf Folgen:
liste:= MakeUnique(sort([f]));
folge:= op(liste);
3, 5, f[2..4], 7;