Expressões no LISP de 1960
Funções que quando se têm como argumento dão-se como resultado no LISP de John McCarthy
Já anteriormente tinha construído alguns exemplos de funções "meio esquisitas", que quando se têm como argumento dão-se como resultado. Vejamos então, usando o LISP de 1960 de John McCarthy (JMC), os mesmos exemplos:
1. Função identidade, (f f)
dá f
.
> (eval. '((label ident (lambda (x) x))
y)
'((y ident)))
ident
ou
> (eval. '((lambda (x) x) '((lambda (x) x))) '()) ((lambda (x) x))
2. função diag
definida por (label diag (lambda (x) (list x (list 'quote x))))
2.1 aplicada a 'list
> (eval. '(
(label diag (lambda (x) (list x (list 'quote x))))
y)
'((y list)))
(list (quote list))
e
> (eval. (eval. '( (label diag (lambda (x) (list x (list 'quote x)))) y) '((y list))) '()) (list)2.2
(diag 'diag)
> (eval. '((label diag (lambda (x) (list x (list 'quote x))))
y)
'((y diag)))
(diag (quote diag))
ou ainda
> (eval. (eval. '((label diag (lambda (x) (list x (list 'quote x)))) diag) '()) '()) ((label diag (lambda (x) (list x (list (quote quote) x)))) (quote (label diag (lambda (x) (list x (list (quote quote) x))))))e, ainda ainda,
> (eval. (eval. '((lambda (x) (list x (list 'quote x))) '(lambda (x) (list x (list 'quote x)))) '()) '()) ((lambda (x) (list x (list (quote quote) x))) (quote (lambda (x) (list x (list (quote quote) x)))))
E um exemplo extra do artigo original do JMC
> (eval. '((label ff (lambda (x) (cond ((atom x) x) ('t (ff (car x)))))) y) '((y ((a b) (c d))))) aPalavras chave/keywords: LISP, John McCarthy
Criado/Created: NaN
Última actualização/Last updated: 10-10-2022 [14:26]
(c) Tiago Charters de Azevedo