Trong [1], Mitchell Wand đã chứng minh rằng việc thêm fexprs vào phép tính lambda thuần túy làm tầm thường hóa lý thuyết tương đương theo ngữ cảnh, nghĩa là hai thuật ngữ tương đương với ngữ cảnh nếu chúng là -congruent. Khi khám phá các công việc liên quan, ông đã đi "kết quả của chúng tôi mở rộng một quan sát cũ về Albert Meyer [2] và đưa ra tầm thường tương đương theo ngữ cảnh". Nhưng đề cập đến [2], những gì có thể tìm thấy chỉ là tuyên bố sau của Meyer:eval
quote
Tôi nghĩ rằng trong các ngôn ngữ có một
quote
-eval
tính năng như LISP [3] không có sự phân biệt kiểu giữa các đối tượng cú pháp và thực thi. Trên thực tếquote
-eval
có vẻ đủ an toàn trong LISP bởi vì, mặc dùquote
về mặt cú pháp trông giống như một nhà điều hành trung thực, như nóicond
, nó thực sự không hoạt động như một (nó chỉ có hành vi tại thời điểm phân tích, không chạy thời gian, ví dụ, người ta không thể vượt quaquote
như là một tham số cho một thủ tục). Tuy nhiên, tôi vẫn chưa thấy các ví dụ thuyết phục trong đó tính năngquote
-eval
đáng giá.
Bất kể một lỗ hổng nhỏ nào trong những bình luận này có thể khiến người đọc hiểu lầm rằng cond
có thể được chuyển qua như một tham số cho một thủ tục. Nếu tôi hiểu chính xác, những gì Meyer nói " quote
- eval
có vẻ đủ an toàn" có nghĩa là quote
- eval
có thể không tầm thường hóa lý thuyết công bằng, mặc dù ông không đưa ra một bằng chứng.
BIÊN TẬP:
Theo đề xuất của Martin, vì cả ba bài báo được trích dẫn liên quan đến ngôn ngữ gia đình LISP, chúng ta hãy đặt câu hỏi dưới cùng một cài đặt này. Là sự tương đương theo ngữ cảnh của một ngôn ngữ với quote
- eval
, đặc biệt là LISP, trên trái đất có tầm thường hay không?
[1] Mitchell Wand, Lý thuyết về Fexprs là tầm thường . Lisp và tính toán tượng trưng 10 (3): 189-199 (1998).
[2] Albert Meyer, Câu đố trong Hội thảo Logic lập trình về phát triển phần mềm chính thức. 1984
[3] John McCarthy, hàm đệ quy của biểu thức tượng trưng và tính toán của họ bằng máy, Phần I . Truyền thông của ACM vào tháng 4 năm 1960.