Eine klassische Programmierübung besteht darin, einen Lisp / Scheme-Interpreter in Lisp / Scheme zu schreiben. Die Leistung der vollständigen Sprache kann genutzt werden, um einen Interpreter für eine Teilmenge der Sprache zu erstellen.
Gibt es eine ähnliche Übung für Haskell? Ich möchte eine Teilmenge von Haskell mit Haskell als Engine implementieren. Natürlich ist dies möglich, aber gibt es Online-Ressourcen, die Sie sich ansehen können?
Hier ist die Hintergrundgeschichte.
Ich untersuche die Idee, Haskell als Sprache zu verwenden, um einige der Konzepte in einem von mir unterrichteten Kurs für diskrete Strukturen zu untersuchen . Für dieses Semester habe ich mich für Miranda entschieden , eine kleinere Sprache, die Haskell inspiriert hat. Miranda macht ungefähr 90% von dem, was ich möchte, aber Haskell macht ungefähr 2000%. :) :)
Meine Idee ist es also, eine Sprache zu erstellen, die genau die Funktionen von Haskell enthält, die ich möchte, und alles andere nicht zulässt. Während die Schüler Fortschritte machen, kann ich verschiedene Funktionen selektiv "einschalten", sobald sie die Grundlagen beherrschen.
Pädagogische "Sprachniveaus" wurden erfolgreich verwendet, um Java und Schema zu unterrichten . Indem Sie ihre Möglichkeiten einschränken, können Sie verhindern, dass sie sich in den Fuß schießen, während sie noch die Syntax und Konzepte beherrschen, die Sie vermitteln möchten. Und Sie können bessere Fehlermeldungen anbieten.