Me gustaría un ejemplo de quine en cálculo lambda puro . Me sorprendió bastante no poder encontrar uno buscando en Google. La página quine enumera quines para muchos idiomas "reales", pero no para el cálculo lambda.
Por supuesto, esto significa definir lo que quiero decir con una quine en el cálculo lambda, que hago a continuación. (Estoy pidiendo algo bastante específico).
En algunos lugares, por ejemplo, Larkin y Stocks (2004), veo lo siguiente citado como una expresión "autorreplicante": . Esto se reduce a sí mismo después de un solo paso de reducción beta, dándole una sensación de quine de alguna manera. Sin embargo, no se parece a quine porque no termina: las reducciones beta adicionales seguirán produciendo la misma expresión, por lo que nunca se reducirán a la forma normal. Para mí, un quine es un programa que termina y se genera solo, por lo que me gustaría una expresión lambda con esa propiedad.
Por supuesto, cualquier expresión que no contenga redexes ya está en forma normal y, por lo tanto, terminará y se generará. Pero eso es demasiado trivial. Por lo tanto, propongo la siguiente definición con la esperanza de que admitirá una solución no trivial:
definición (provisional): Una quine en cálculo lambda es una expresión de la forma
Dado que el cálculo lambda es tan equivalente a Turing como cualquier otro idioma, parece que esto debería ser posible, pero mi cálculo lambda está oxidado, así que no puedo pensar en un ejemplo.
Referencia
James Larkin y Phil Stocks. (2004) "Expresiones autorreplicantes en el cálculo de Lambda" Conferencias en Investigación y práctica en tecnología de la información, 26 (1), 167-173. http://epublications.bond.edu.au/infotech_pubs/158