Dans [1], Mitchell Wand a démontré que l'ajout de fexprs au calcul lambda pur banalise la théorie de l'équivalence contextuelle, ce qui signifie que deux termes sont contextuellement équivalents s'ils sont -congruents. En explorant le travail connexe, il est allé "notre résultat prolonge une vieille observation d'Albert Meyer [2] et rend l'équivalence contextuelle triviale". Mais en faisant référence à [2], ce qui a pu être trouvé n'est que la déclaration suivante de Meyer:eval
quote
J'ai d'abord pensé que dans les langages avec une fonction
quote
-eval
comme LISP [3], il n'y avait pas de distinction de type entre les objets syntaxiques et exécutables. En faitquote
-eval
semble assez sûr dans LISP parce que, bien quequote
syntaxiquement ressemble à un opérateur de bonne foi, comme disonscond
, il ne se comporte vraiment pas comme un (il n'a qu'un comportement au moment de l'analyse, pas au moment de l'exécution, par exemple, on ne peut pas passerquote
comme paramètre d'une procédure). Pourtant, je n'ai pas encore vu d'exemples convaincants où la fonctionnalitéquote
-eval
valait la peine.
Indépendamment d'une faille mineure dans ces commentaires qui peut induire le lecteur en erreur et déduire qui cond
pourrait être transmise comme paramètre à une procédure. Si je comprends bien, ce que Meyer a dit " quote
- eval
semble assez sûr" signifie que quote
- eval
peut ne pas banaliser la théorie équationnelle, bien qu'il n'ait pas fourni de preuve.
ÉDITER:
Comme l'a suggéré Martin, puisque les trois articles cités traitent des langues de la famille LISP, posons la question sous ce même cadre. L'équivalence contextuelle d'une langue avec quote
- eval
, en particulier LISP, sur terre est-elle triviale ou non?
[1] Mitchell Wand, The Theory of Fexprs Is Trivial . Lisp et Symbolic Computation 10 (3): 189-199 (1998).
[2] Albert Meyer, Puzzles in Programming Logic Workshop on Formal Software Development. 1984
[3] John McCarthy, fonctions récursives des expressions symboliques et leur calcul par la machine, la partie I . Communications de l'ACM en avril 1960.