|
|
|
|
|
by kazinator
1366 days ago
|
|
Statements like "IO can be done [in lambda calculus] by ..."
really mean "lambda calculus doesn't have IO but can be extended by ...". Here's what it means to have an LC in LC interpreter. Firstly pick what LC means. Choose a representation for it. Exactly one. Show that this is lambda calculus with no extensions. Then show how an embedded expression of this can be interpreted. For instance supposed we have a lambda calculus which is based on a three letters M I and U. Spaces are insignificant. Say that MUIMUIMMU is a valid expression. Then a self-interpreting situation might look like this: IMUMIUMM...MUI MUIMUIMMU UMI
The to-be-interpreted expression appears embedded. I set it off with spaces for clarity. It is not translated into any different representation. The surrounding material represents the interpreter. There needn't be an epilogue piece after the embedded expression. Important: no part of this interpreter depends on the embedded expression. We can swap in arbitrary other expressions without changing the interpreter; will correctly interpret those expressions.I am skeptical that this is possible with standard, unextended lambda calculus, whether regular or de Bruin. |
|