Previous: Einführung in Zeichenketten, Up: Zeichenketten [Contents][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."

Previous: Einführung in Zeichenketten, Up: Zeichenketten [Contents][Index]