En [1], Mitchell Wand demostró que agregar fexprs al cálculo lambda puro trivializa la teoría de la equivalencia contextual, lo que significa que dos términos son contextualmente equivalentes si son congruentes. Al explorar el trabajo relacionado, dijo: "nuestro resultado extiende una vieja observación de Albert Meyer [2] y hace que la equivalencia contextual sea trivial". Pero en referencia a [2], lo que se puede encontrar es solo la siguiente declaración de Meyer:evalquote
Primero pensé que en los lenguajes con una característica
quote-evalcomo LISP [3] no había distinción de tipo entre objetos sintácticos y ejecutables. De hechoquote,evalparece lo suficientemente seguro en LISP porque, aunquequotesintácticamente parece un operador de buena fe, como por ejemplocond, realmente no se comporta como uno (solo tiene comportamiento en tiempo de análisis, no en tiempo de ejecución, por ejemplo, uno no puede pasarquotecomo parámetro de un procedimiento). Aún así, todavía tengo que ver convencer ejemplos en los quequote-evalcaracterística es que vale la pena.
Independientemente de una falla menor en estos comentarios que puede inducir a error al lector a inferir que condpodría pasarse como parámetro de un procedimiento. Si he entendido bien, lo que dijo Meyer " quote- evalparece lo suficientemente seguro" significa que quote- evalno puede trivializar la teoría ecuacional, aunque él no ofrecen una prueba.
EDITAR:
Según lo sugerido por Martin, dado que los tres documentos citaron el trato con los idiomas familiares de LISP, coloquemos la pregunta en esta misma configuración. ¿Es la equivalencia contextual de un lenguaje con quote- eval, en particular LISP, en la tierra trivial o no?
[1] Mitchell Wand, The Theory of Fexprs Is Trivial . Lisp y Symbolic Computation 10 (3): 189-199 (1998).
[2] Albert Meyer, Taller de lógica de programación en desarrollo de software formal. 1984
[3] John McCarthy, funciones recursivas de expresiones simbólicas y su cómputo por máquina, Parte I . Comunicaciones de la ACM en abril de 1960.