У роботі [1] Мітчелл Ванд продемонстрував, що додавання fexprs до чистого обчислення лямбда тривілізує теорію контекстуальної еквівалентності, тобто два терміни є контекстуально еквівалентними, якщо вони -конгруентні. При вивченні відповідної роботи, він пішов «наш результат розширює старе спостереження Альберт Мейєр [2] , що і візуалізації контекстна еквівалентності тривіальним». Але посилаючись на [2], те, що можна було знайти, є лише наступним твердженням Мейєра:eval
quote
Я перша подумала , що в мовах з
quote
-eval
функціями , такими як LISP [3] не було ніякого типу відмінності між синтаксичними і виконуваними об'єктами. Насправдіquote
-eval
здається досить безпечним у LISP, тому що, хочаquote
синтаксично виглядає як добросовісний оператор, як скажімоcond
, він насправді не поводиться як один (він має поведінку лише за час розбору, а не час виконання, наприклад, не може пройтиquote
як параметр до процедури). Тим НЕ менше, я до сих пір побачити переконливі приклади , деquote
-eval
функція була стоїть.
Незалежно від одного незначного недоліку в цих коментарях, який може ввести читача в оману, щоб зробити висновок про те, що він cond
може бути переданий як параметр до процедури. Якщо я правильно розумію, те, що сказав Мейєр " quote
- eval
здається досить безпечним", означає, що quote
- eval
можливо, не тривілізує теорію рівнянь, хоча він не запропонував доказів.
Редагувати:
Як запропонував Мартін, оскільки всі три статті цитуються, що стосуються сімейних мов LISP, давайте поставимо питання під цією ж установкою. Чи контекстна еквівалентність мови з quote
- eval
зокрема LISP - на землі тривіальною чи ні?
[1] Мітчелл Ванд, теорія Фекспрів тривіальна . Лісп і символічні обчислення 10 (3): 189-199 (1998).
[2] Альберт Мейєр, Пазли в практикумі програмування логіки з формальної розробки програмного забезпечення. 1984 рік
[3] Джон Маккарті, Рекурсивні функції символічних виразів та їх обчислення з допомогою машини, частина I . Комунікація ОСББ у квітні 1960 року.