In [1] demonstrierte Mitchell Wand, dass das Hinzufügen von fexprs zum reinen Lambda-Kalkül die Theorie der kontextuellen Äquivalenz trivialisiert, was bedeutet, dass zwei Terme kontextuell äquivalent sind, wenn sie kongruent sind. Als er verwandte Arbeiten untersuchte, ging er davon aus, dass "unser Ergebnis eine alte Beobachtung von Albert Meyer [2] erweitert und die kontextuelle Äquivalenz trivial macht". Unter Bezugnahme auf [2] konnte jedoch nur die folgende Aussage von Meyer gefunden werden:eval
quote
Ich dachte zuerst, dass es in Sprachen mit einer
quote
-eval
Funktion wie LISP [3] keine Typunterscheidung zwischen syntaktischen und ausführbaren Objekten gibt. Tatsächlichquote
-eval
scheint in LISP sicher genug zu sein, da es, obwohl esquote
syntaktisch wie ein vertrauenswürdiger Operator aussiehtcond
, sich wirklich nicht wie einer verhält (es hat nur Verhalten zur Analysezeit, keine Laufzeit, z. B. kann man nicht übergebenquote
als Parameter zu einer Prozedur). Trotzdem habe ich noch überzeugende Beispiele gesehen, bei denen sich diequote
-eval
Funktion gelohnt hat.
Unabhängig von einem kleinen Fehler in diesen Kommentaren, der den Leser irreführen cond
könnte, daraus zu schließen, dass er als Parameter an eine Prozedur übergeben werden könnte. Wenn ich richtig verstehe, bedeutet das, was Meyer sagte " quote
- eval
scheint sicher genug", dass quote
- eval
die Gleichungstheorie möglicherweise nicht trivialisiert wird, obwohl er keinen Beweis angeboten hat.
BEARBEITEN:
Da sich alle drei Papiere mit den Sprachen der LISP-Familie befassen, wollen wir die Frage, wie von Martin angeregt, unter denselben Umständen stellen. Ist die kontextuelle Gleichwertigkeit einer Sprache mit quote
- eval
insbesondere LISP - auf der Erde trivial oder nicht?
[1] Mitchell Wand, The Theory of Fexprs ist trivial . Lisp and Symbolic Computation 10 (3): 189-199 (1998).
[2] Albert Meyer, Puzzles in Programming Logic Workshop zur formalen Softwareentwicklung. 1984
[3] John McCarthy, rekursive Funktionen der symbolischen Ausdrucksformen und deren Berechnung von Maschinen Teil I . Mitteilungen der ACM im April 1960.