Ich beschreibe diese Frage anhand eines Beispiels aus einem Buch.Ausdruck der Haskell-Bewertungsschritte für Lern-/Lernzwecke. Ist es möglich?
In Simon Thompsons Buch "HASKELL das Handwerk der funktionalen Programmierung" auf Seite 82 (siehe Bilder unten) werden die Bewertungsschritte für fac 4
gezeigt.
FRAGE:
Ist es möglich, ein Tool oder eine „Haskell Debugger“ zu verwenden, die die Auswertungsschritte schreiben würde, die GHCi verwendet, wenn er den Wert von fac 4
bewerten würde?
Vorzugsweise in einem für Menschen lesbaren Format für Bildungs- und Lernzwecke.
Es wäre auch gut, eine automatische Erklärung für jeden Bewertungsschritt zu haben, z. B. welche Gleichung beim Umschreiben verwendet wurde.
Mein Hauptzweck ist es, ein tieferes Verständnis dafür zu bekommen, wie die Umschreibungsschritte ausgeführt werden, wenn ich einfache pädagogische Haskell-Beispielprogramme (wie fac
) ausführe.
Gibt es eine Möglichkeit, dies zu tun? Wenn ja, wie?
[einfach-reflektieren] (https://hackage.haskell.org/package/simple-reflect) kann etwas davon tun. Aber obwohl es für einfache Dinge wie Listen und Karten nützlich ist, funktioniert es nicht für alles. – genisage
können Sie es in Prolog (verrückte Idee;) und [verfolgen Sie es] (http://i.imgur.com/AKCFefx.png) dort konvertieren ... (gezeigt wird der grafische Debugger von SWI-Prolog). Funktioniert für die einfachsten Dinge. Übrigens überspringt das Buch einige Schritte (die Werte werden nicht sofort erzwungen, sondern nur im Vergleich zu Null). Prolog - weil seine Regeln auch auf Klauseln basieren. –