In [1], Mitchell Wand ha dimostrato che l'aggiunta di fexprs al puro calcolo lambda banalizza la teoria dell'equivalenza contestuale, il che significa che due termini sono contestualmente equivalenti se sono congruenti. Quando esplorando collegato lavoro, è andato "il nostro risultato si estende una vecchia osservazione di Albert Meyer [2] che e rendono l'equivalenza contestuale banale". Ma riferendosi a [2], ciò che potrebbe essere trovato è solo la seguente dichiarazione di Meyer:eval
quote
Ho pensato per la prima volta che nei linguaggi con una
quote
-eval
caratteristica come LISP [3] non vi era alcuna distinzione di tipo tra oggetti sintattici ed eseguibili. In effettiquote
-eval
sembra abbastanza sicuro in LISP perché, sebbenequote
sintatticamente sembri un operatore in buona fede, come direcond
, in realtà non si comporta come uno (ha solo un comportamento in fase di analisi, non in fase di esecuzione, ad esempio, non si può passarequote
come parametro per una procedura). Tuttavia, devo ancora vedere esempi convincenti in cui la funzionequote
-eval
è valsa la pena.
Indipendentemente da un piccolo difetto in questi commenti che può indurre in errore il lettore a dedurre che cond
potrebbe essere passato come parametro a una procedura. Se ho capito bene, ciò che Meyer ha detto " quote
- eval
sembra abbastanza sicuro" significa che quote
- eval
potrebbe non banalizzare la teoria equazionale, sebbene non abbia offerto una prova.
MODIFICARE:
Come suggerito da Martin, poiché tutti e tre i documenti citati trattano le lingue della famiglia LISP, mettiamo la domanda in questa stessa impostazione. L'equivalenza contestuale di una lingua con quote
- eval
, in particolare LISP, sulla terra è banale o no?
[1] Mitchell Wand, The Theory of Fexprs Is Trivial . Lisp and Symbolic Computation 10 (3): 189-199 (1998).
[2] Albert Meyer, Puzzle in Laboratorio di logica di programmazione sullo sviluppo di software formale. 1984
[3] John McCarthy, funzioni ricorsive di espressioni simboliche e loro calcolo a macchina, parte I . Comunicazioni dell'ACM nell'aprile 1960.