quote Goedel
A notação quote
em LISP permite de uma maneira muito simples aplicar todo o
conjunto de expressões simbólicas num sub-conjunto de si próprio1, isto faz
com que o conjunto de expressões simbólicas seja infinito e, para além disso,
podemos usar as expressões que sobram para representar ouras coisas. Podemos aplicar esta
ideia aos números naturais de uma maneira simples. O quote
de um número natural
n
é (* 2 n)
, i.e., o seu dobro, usando a analogia entre uma expressão "quoted",
por exemplo, (quote a)
, e a a própria expressão, a
, que se obtém de (cadr (quote
'a))
. Ficamos assim, desta forma, com os números ímpares para representar outras coisas.
Dado uma lista ordenada de variáveis, todas as que podemos pensar, vamos codificar a n-ésima variável por onde a primeira toma o valor 10. Por exemplo a->10
, b->11
, etc. Se
usarmos para representar cond
, para representar lambda
, etc, a codificação de um procedimento (f x y
z)
pode ser escrita como , onde codifica a
.
Assim a expressão
(cond ((null a) 3) (t 6))
pode ser codificada através do número
Ficamos assim com a codificação de Goedel de todas as expressões de LISP :)
1. Guy Lewis Steele, Jr. and Gerald Jay Sussman. "The Art of the Interpreter or, the Modularity Complex (Parts Zero, One, and Two)". MIT AI Lab. AI Lab Memo AIM-453. May 1978.
Palavras chave/keywords: LISP, quote, GoedelCriado/Created: NaN
Última actualização/Last updated: 10-10-2022 [14:25]
(c) Tiago Charters de Azevedo