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;
