Professional Documents
Culture Documents
L
ogica y Programaci
on L
ogica Listas
La lista es una estructura que permite manejar
colecciones de datos.
Universidad Aut
onoma Metropolitana
Son ejemplos de listas:
DCCD, DTI
[una,coleccion,de,numeros], una lista de cuatro
cadenas alfab eticas;
[a,b], una lista de dos elementos;
1. Listas
[b,a], tambi en dos elementos, diferente a la anterior;
2. Unicaci
on
[3,3,4,0,-2], lista de cinco elementos num ericos;
3. Lectura y escritura de cl
ausulas
[0], una lista de un solo elemento;
[q,6,nn1w,[d,g,9]], lista de cuatro elementos cuyo
ultimo elemento es tambi
en una lista;
[], la lista vaca, la cual es muy importante en las
operaciones con listas;
[quo,Lista,Vacia], lista cuyo segundo y tercer
0
1
Ejemplos de notaci
on de listas Ejercicios con listas
En las listas es muy utilizada la notaci on
A partir de las entradas existentes, proponer los
primeros-resto. Esto signica que toda lista no vaca
componentes o listas faltantes:
puede ser descompuesta en dos partes y, adem as, se
emplea una notaci on especial para representar esta primero resto construcci
on lista
[a, b|[]]
descomposici on. Leamos los siguientes ejemplos.
a, b, c [a, b, c]
lista primeros resto c/constructor: | A B
[a, b] a [b] [a|[b]] a, B C
[a, b, b, c] a, b [b, c] [a, b|[b, c]] p [d|E]
[ab, c, d] ab [c, d] [ab|[c, d]] [a|C] [a, b|B]
[b, a, c] b [a, c] [b|[a, c]] [a, [F |G], [[]]]
[[b], b, c] [b] [b, c] [[b]|[b, c]]
[[]] [] [] [[]|[]]
[] - - -
[a] a [] [a|[]]
2
3
Unicaci
on Unicaci
on
Unicaci
on Ejercicios de unicaci
on
La MI realiza inferencias partiendo del empatamiento
de dos literales: una tomada de la consulta y otra de t1 t2 Sustituci
on
la memoria. [a] [Uno|Dos]
El empatamiento se logra unicando las literales: V1 Gato
encuentra una sustituci on de variables por t erminos p(a,b) p(a,c)
tal que iguale las dos literales. E sta puede no existir. p(a,b) p(a,b)
p(a,b) p(a,C)
Algunos ejemplos de unicaci on:
t1 t2 Sustituci on qu([a,b], [C|D]) qu(D,R)
[a] [V] V/a A [a,b]
a [V] falla: no existe [ |D] [a,b]
[a] X X/[a]
[a, b] [Y] falla: no existe
[a, b] [Z|W] Z/a,W/[b]
[a,[b]] [Z|W] Z/a,W/[[b]]
[a, b] [Q, R] Q/a,R/b
4
5
[a, b] [a, b]
Unicaci
on
Ejemplo: unicaci
on y listas Resumen
6
7
Conjunciones Conjunciones
A continuaci on aparecen varios hechos base (sin variables) para las La lectura y escritura de las consultas se basa en el
literales persona/3 y padre/2 (con tres y dos argumentos). signicado que demos a las deniciones de la memoria.
persona(pablo,7,m). persona(juan,78,m). Lectura/escritura Consulta
persona(javier,55,m). persona(margara,32,f). quien es el padre de juan? ?padre(X,juan).
persona(ana,4,f). persona(antonio,58,m).
quien es el hijo de juan? ?padre(juan,X).
persona(alberto,24,m). persona(guadalupe,27,f).
persona(maria,75,f). persona(clara,45,f). es cierto que juan es padre de maria? ?padre(juan,maria).
padre(juan,javier). padre(javier,margara). cuales son las parejas que cumplen
padre(margara,ana). padre(juan,antonio). la relaci
on padre? ?padre(X,Y).
padre(antonio,alberto). padre(antonio,guadalupe).
padre(maria,javier). padre(clara,alberto). juan y maria tienen un hijo en ?padre(juan,X),
padre(guadalupe,pablo). com un? padre(maria,X).
cual es la edad de juan? ?persona(juan,X, ).
Como puede verse, hay mayor informaci
on: nombre, edad, y g
enero
son los argumentos de persona. cual es la edad del hijo de juan? ?padre(juan,X),
persona(X,Y,Z),
write(Y).
8
9
Conjunciones Deniciones
10
11
Escritura Escritura
12
13