Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Tema 6. Operadores en PROLOG PDF
Tema 6. Operadores en PROLOG PDF
Operadores en PROLOG
1. Definicin de operadores propios
2. Operadores predefinidos
Igualdad
Manejo de ficheros
Comparacin de nmeros
6. Operadores en PROLOG
2. Operadores predefinidos (cont.)
Clasificacin de trminos
Control de la re-evaluacin
Metavariables
Aridad
Notacin o posicin
Asociatividad:
a+b+c:
a+(b+c) (a+b)+c
2. Operadores predefinidos
Ya hemos visto:
Ejemplo: corte
2.1. Igualdad
X = Y.
X \= Y.
X == Y. Identidad
X = Y.
X == X.
X = Y, X == Y.
append([A|B], C) == append(X, Y).
append([A|B], C) == append([A|B], C).
X \== Y.
Su opuesto.
Lectura
Escritura
write(X),
display(X)
put(X)
Formato:
read(X),
get0(X),
get(X)
nl
tab(X)
skip(+Code)
skip(a).
Lectura:
see(X),
seeing(X),
seen
Escritura:
tell(X),
telling(X),
told
X is Y.
X
X
X
X
X
+ Y.
Y.
* Y.
/ Y.
mod Y.
X
X
X
X
X
X
= Y.
\= Y.
< Y.
> Y.
>= Y.
=< Y.
consult(X).
Aade nuevas clausulas. Si ya estn definidos predicados,
aade clausulas al final.
?- consult(fichero).
?- consult(fichero1), consult(fichero2).
reconsult(X).
Las clausulas leidas substituyen a las actuales.
?- reconsult(fichero3), reconsult(fichero4).
Notacin de lista:
fichero para consult.
-fichero para reconsult.
?- [fichero1, -fichero3.pl, fichero2.pl, -fichero4.pl]
true
siempre se cumple
fail
siempre fracasa
Utilidades:
..., !, fail.
nonvar(X)
atom(X)
se cumple si X identifica en ese momento un tomo
?- atom(23).
no
?- atom(libros).
yes
?- atom(esto es una cadena).
?
integer(X)
atomic(X)
se cumple si en ese momento X es un entero o un
tomo
atomic(X):- atom(X).
atomic(X):- integer(X).
listing(A).
Ejemplo:
?- [recorrer_fichero].
?- listing(mostrar_fichero).
mostrar_fichero :write('Nombre de fichero: '),
read(A),
see(A),
muestra_contenido,
seen.
clause(X, Y).
asserta(X), assertz(X).
retract(X).
Construccin y acceso de
componentes de estructuras (II)
arg(N, T, A).
X =.. L
Ejemplo:
?- algo(a, b, c) =.. L.
L = [algo, a, b, c]
Construccin y acceso de
componentes de estructuras (III)
Ejemplo:
?- X =.. [f, a, b, c].
X = f(a, b, c).
name(A, L)
repeat
Permite buscar soluciones alternativas.
Sera equivalente a tener definido:
repeat.
repeat :- repeat.
2.12. Metavariables
call(X)
not(X)
\+ padre(X).
not(padre(X)).
X, Y
conjuncin de objetivos
X;Y
disyuncin de objetivos