Ich versuche, das Papier zu verstehen: Abhängige Typen ohne Zucker, indem ich einen Interpreter und eine Typprüfung für die Sprache implementiere. Dabei habe ich gesehen, dass die unfold t as x -> u
Syntax für rekursive Definitionen (die Syntax ist in Abschnitt 2.1 definiert) eine Variable bindet, aber ich verstehe nicht, warum dies erforderlich ist. Keines der Beispiele in diesem Artikel verwendet tatsächlich die variable Bindung - alle verwenden eine Kurzform unfold t
(Bedeutung unfold t as x -> x
).
Ich kann sehen , dass der Typ für sie (aus dem Abschnitt 5) verwendet die variable Prüfregel verbindlich, aber ich verstehe nicht , die Auswirkungen dieses. Soweit ich das beurteilen kann, unfold t as x -> u
ist das völlig gleichbedeutend mit let x = unfold t in u
.
Kann jemand ein Beispiel dafür geben, wann die Variablenbindung hilfreich oder notwendig ist? Gibt es einen Begriff, der unfold
mit der Langform und nicht mit der Kurzform und prüft let
?