Professional Documents
Culture Documents
1era Clase PDF
1era Clase PDF
Ejplo
12, ABC, NIL, T,V .... etc donde NO DENOTAN por
ejemplo una variable o algo por el estilo
Diagramar
b) (3.((A.B).T) )
c) ((A.3).((2.X).Y))
(3.((A.B).T) )
((A.3).((2.X).Y))
Lista
Una lista o bien es vacía, o bien es un átomo bien
es un par ordenado cuyo 2do elemento es una lista
(forma recursiva)
(3,B,5) ( 3 . ( B . ( 5. NIL) ) )
(17,H,P) Se representa
Representar
( A, (A. B),(C,D,E),(F),())
donde (F) es una lista y () también
(A, (A . B),(C,D,E),(F),())
(A B ) (A,B) (A. B )
¿ qué FUNCIONES podríamos utilizar?
Funciones que aplicadas ....
Exp Simbolicas nos devuelven Exp Simbolicas
3. number [5]= T
number[x] = NIL
Predicados
T si x es un atomo
5. atom [ x ] NIL si x no es un atomo
selectores
car ( cabeza , first) y cdr ( cola o rest)
Nota: si x es un átomo car[x]= error
car [ (A.B) .C ] = (A.B)
car [ ( A B C ) ] = A
car [ ( ( A B C ) ( D E F ) ) ] = ( A B C )
cdr [ (A.5)] = 5
cdr [ ( A 5 )] = ( 5)
cdr [ ( A B C ) ] = ( B C )
Nota CAR o CDR de un átomo es (indefinido)
Tambien podemos realizar la « composición» de los dos selectores
cdr[ cdr [ ( ( A B ( C ) ) ( D ( E ) F )) ]
(D(E)F)
((E)F)
( A B C D ) quiero obtener B
Cons ( constructor) una función de 2 variables
cons [ x;y] = ( X.Y) X Y
Combinaciones
a) car [ cons [ ; ]] =
b) cons [ car [ ; ]] =
c) cons[ car[ ] ; cdr [ ] ] =
car[ cdr [ cdr [ (( A B) C D ) ]]]= caddr [(( A B) C D ) ]]]= ¿?
Composicion de funciones eq y car, cdr
eq [ A; NIL ] = NIL