Está en la página 1de 4

1

Listas.
Secuencia ordenada de elementos (items) que pueden tener cualquier longitud, las listas pueden ser vacas
sino contienen elementos, y por lo general son estructuras con dos componentes: cabeza, cola.
Un conjunto de elementos encerrados entre corchetes y separados por comas. Una lista de smbolos sera
de la forma [elem_1, elem_2, ..., elem_N].
La lista vaca se representa con dos corchetes, [ ].
La manera ms sencilla de escribir listas es enumerar sus elementos. La lista que consta de tres tomos a, b
y c puede escribirse como :
[ a, b, c ]
Tambin podemos especificar una secuencia inicial de elementos y una lista restante, separadas por |.

La lista [a,b,c] tambin puede escribirse como :
[a, b, c | [ ] ]
[a, b | [c] ]
[a, | [b, c] ]

Un caso especial de esta notacin es una lista con cabeza H y cola T, representada como [H | T]. La cabeza
puede usarse para extraer los componentes de una lista, de manera que no se requieren operadores
especficos para extraer la cabeza y la cola. La solucin a la consulta :

Los elementos de una lista pueden ser :
- Constantes
- Variables
- Estructuras

Operaciones con listas.
Las listas se pueden usar para representar conjuntos, sin embargo, entre las listas y los conjuntos existen
algunas diferencias:
- el orden de los elementos en un conjunto no es relevante, mientras que en las listas si lo es.
- en una listas se pueden repetir elementos;
A pesar de lo anterior , la mayora de las operaciones que se realizan en las listas son anlogas a las que se
efectan en los conjuntos. Entre estas operaciones se encuentran:
- verificar la pertenencia de un elemento a una lista.
- concatenar listas
- agregar un elemento a una lista
- eliminar un elemento de una lista.

FUNCIONES DEFINIDAS.

VERIFICAR LA PERTENENCIA DE UNA ELEMENTO A UNA LISTA
Se desea verificar en una lista si existe un elemento especfico, puede utilizarse las siguientes dos reglas.

member(X,[X|_]):-true.
member(X,[_|Y]):-member(X,Y).


Concatenacin de listas
Unin de listas en una sola

concat([], L, L).
concat( [ X | L1 ] , L2, [ X | L3 ] ) :- concat(L1, L2, L3).


2


Adicin de elementos
Para agregar un elemento a una lista cualquiera se puede considerar que el nuevo elemento agregado a la
lista se ubicar en su Cabeza, por lo tanto se puede escribir lo siguiente:

agregar( X, L, [ X | L ] ).

Eliminacin de elementos
La eliminacin de elementos de una lista se puede definir como:

eliminar(X, L, L1).

En este caso, X es el elemento que se desea eliminar de la lista L y L1 es la lista resultante, o sea la lista L
menos el elemento X.
En Prolog se escribe las siguientes expresiones:

eliminar( X, [ X | Cola ], Cola ).
eliminar( X, [Y | Cola ] , [ Y | Cola1 ] ) :- eliminar(X,Cola,Cola1).

Otras operaciones con listas
Primer elemento
Identificar el primer elemento de una lista, o definido como la cabeza de la lista
primero([X|_],X).

Elementos que forman parte de la cola de la lista
Identificar los elementos diferentes al primero.
restantes([_|X],X).


Ejemplos
Una forma de definir que un conjunto de materias pertenece a una clasificacin
ciclo_basico (geografa)
ciclo_basico (anatoma)
ciclo_basico (historia)
ciclo_basico (geometra)
ciclo_basico (botnica)
ciclo_superior (diseo)
ciclo_superior (clculo)
ciclo_superior (literatura)
ciclo_superior (taller)
ciclo_superior (tecnologa)

Se puede representar el mismo conocimiento aplicando listas y las instrucciones especificas

%aplicacin de listas y la instruccin de pertenencia en una regla
ciclo_basico(X):- member(X,[geografia, anatomia, historia, geometria, botanica]).
ciclo_superior(X):-member(X,[diseno, calculo, literatura, taller, tecnologia]).







3




Ejercicios

-Representar para los estudiantes del paralelo 5/1 de la carrera de informtica, las caractersticas de hombre,
mujer, personas que estudian, personas que trabajan, colocar a cinco estudiantes como asistentes al
seminario de Robtica
- Aquellas personas que estudian son jvenes.
- Los jvenes que estudian estn solteros.
- Los jvenes que estudian son independientes
- Los estudiantes del Seminario y aquellos que trabajan estn casados
- Si los estudiantes estudian Redes y son independientes, pasarn Redes
-Vernica es amiga de Edwin, de Sandra y de Ivonne

Segn sta base de conocimientos,

Quines son las personas que estn casadas?.
Quines pasarn redes?

TEMA 2: Considerando la malla curricular de la carrera de Ingeniera en Sistemas tanto en ao como en
semestre, represente el conocimiento en Prolog tal que se pueda luego responder a las siguientes consultas:
Cules son las materias que pertenecen a las personas matriculadas en modalidad anual?
Cules son las materias que pertenecen a la personas matriculadas en modalidad semestral?
Cules son las materias que son consideradas "bsicas", "complementarias", "de especialidad"?

TEMA 3. Especifique una lista de personas que pudieran estar registradas en las materias y determine las
siguientes consultas.
Personas registradas en las materias bsicas de la malla anual?
Personas registradas en las materias "de especializacin" de la malla anual?
Personas registradas en las materias bsicas de la malla semestral?
Personas registradas en las materias "de especializacin" de la malla semestral?
Malla semestral.




4



Malla Anual

También podría gustarte