Vorige: , Nach oben: Zeichenketten   [Inhalt][Index]

5.2.2 Funktionen und Variablen für Zeichenketten

Funktion: concat (arg_1, arg_2, …)

Verkettet die Argumente arg_1, arg_2, … zu einer Zeichenkette oder einem Symbol. Die Argumente müssen sich zu einem Atom auswerten lassen. Der Rückgabewert ist ein Symbol, wenn das erste Argument ein Symbol ist. Ansonsten wird eine Zeichenkette zurückgegeben.

concat wertet die Argumente aus. Der Quote-Operator ' verhindert die Auswertung. Siehe auch die Funktion sconcat.

Beispiele:

(%i1) y: 7$
(%i2) z: 88$
(%i3) stringdisp:true$
(%i4) concat(y, z/2);
(%o4)                         "744"
(%i5) concat('y, z/2);
(%o5)                          y44

Einem Symbol, das mit concat konstruiert wird, kann ein Wert zugewiesen werden und es kann in Ausdrücken auftreten.

(%i6) a: concat ('y, z/2);
(%o6)                          y44
(%i7) a:: 123;
(%o7)                          123
(%i8) y44;
(%o8)                          123
(%i9) b^a;
                               y44
(%o9)                         b
(%i10) %, numer;
                                123
(%o11)                         b

concat(1, 2) gibt eine Zeichenkette als Ergebnis zurück.

(%i12) concat (1, 2) + 3;
(%o12)                       "12" + 3
Funktion: sconcat (arg_1, arg_2, …)

Verkettet die Argumente arg_1, arg_2, … zu einer Zeichenkette. Im Unterschied zu der Funktion concat müssen die Argumente nicht Atome sein. Der Rückgabewert ist eine Zeichenkette.

Beispiel:

(%i1) sconcat ("xx[", 3, "]:", expand ((x+y)^3));
(%o1)               xx[3]:y^3+3*x*y^2+3*x^2*y+x^3
Funktion: string (expr)

Konvertiert das Argument expr in eine lineare Darstellung, wie sie auch vom Parser von der Eingabe eingelesen wird. Die Rückgabe von string ist eine Zeichenkette. Diese kann nicht als Eingabe für eine Berechnung genutzt werden.

Beispiele:

Die hier verwendete Funktion stringp ist im Paket stringproc definiert und wird automatisch geladen.

(%i1) stringdisp:true;
(%o1)                         true
(%i2) string(expand((a+b)^2));
(%o2)                    "b^2+2*a*b+a^2"
(%i3) stringp(%);
(%o3)                         true
Optionsvariable: stringdisp

Standardwert: false

Hat stringdisp den Wert true, werden Zeichenketten mit Anführungszeichen ausgegeben. Ansonsten werden keine Anführungszeichen ausgegeben.

Wird die Definition einer Funktion ausgegeben, werden enthaltene Zeichenketten unabhängig vom Wert der Optionsvariablen stringdisp immer mit Anführungszeichen ausgegeben.

Beispiele:

(%i1) stringdisp: false$
(%i2) "This is an example string.";
(%o2)              This is an example string.
(%i3) foo () :=
      print ("This is a string in a function definition.");
(%o3) foo() := 
              print("This is a string in a function definition.")
(%i4) stringdisp: true$
(%i5) "This is an example string.";
(%o5)             "This is an example string."

Vorige: , Nach oben: Zeichenketten   [Inhalt][Index]