Re: Pattern Matching

Nein, da ist kein Fehler, das ist was anderes, was mich jetzt ehrlich gesagt wundert, ich suche kurz nach einer Lösung - da scheint irgendetwas mit der Ausgabe komisch zu sein.

Das ist etwas sehr seltsames. Weil an einer Stelle steht printf und verwende ich das, gibt es keinen Fehler, verwende ich es nicht, gibt es einen Fehler, das ist unlogisch. Das hat nichts mit mir zu tun.

Also mit dem printf gibt er
success
(0, (1, 2))
(1, (a, 3, 3))
(2, (b, 3, 3))
(3, (0, 0))
(4, (0, 0))
david@works:~\$
gibt er aus und ohne
(0, (0, 0))
(1, (a, 663684736, 663684736))
(2, (b, 0, 0))
(3, (0, 0))
=====================================
Speicherzugriffsfehler (Speicherabzug geschrieben)

Das steht so da:

int gettoken () {
    if (i >= (strlen (expr)))
      return -1;
    printf ("-------------------------------n");
    printf ("%cn", expr [i]);
    printf ("-------------------------------n");
    return expr [i++];
}

Das kann ich mir nicht erkl"aren.

Dann mache ich halt so weiter - das ist ein Hardware Bug oder was weiss ich - ein Bug im Kernel. Das ist nicht mein Problem - es kann sein, ich habe mit der EA was falsch gemacht, oder eine Variable falsch initialisiert. Logisch ist das trotzdem nicht. Mir ist das egal. Weil das Programm tut und wenn der Computer das von mir verlangt, dass ich da printf hinschreibe, gut meinetwegen, dann mache ich das. Das Programm tut dafür, dann mache ich das.

Das ist das Ergebnis von

"[a,[b,c]]"

success
(0, (1, 2))
(1, (a, 6, 6))
(2, (3, 4))
(3, (b, 5, 5))
(4, (c, 5, 5))
(5, (6, 6))
(6, (0, 0))
(7, (0, 0))
Dafür muss man auch nicht üben, wie die junge Frau, da unten gerade meinte - weil: Wenn man schreibt
variable xyz
printf
xyz

variable xyz
xyz

Dann hat der Unterschied, ausser der Ausgabe, so gesehen keine Auswirkungen, wenn es doch passiert, ist entweder meine Doofheit oder Meltdown und Spectre oder wie der heisst. Keine Algorithmus ist richtig, das ist alles was mich interessiert.
Das ist vollkommen.