f(X,0):-X<3. %Regla 1
f(X,2):-3=<X,X<6. %Regla 2
f(X,4):-6=<X. %Regla 3
esto nos lleva a la formulación de las tres reglas anteriores
ifX >3 then Y=0.
de-otro-modo ifX<6 then Y=2.
de-otro-modo Y=4.
en el primer recuadro lleva la tercera versión de prolog.
f(X,0):- X<3,!.
f(X,2):-X<5,!.
f(X,4).
de-otro-modo ifX<6 then Y=2.
de-otro-modo Y=4.
en el primer recuadro lleva la tercera versión de prolog.
f(X,0):- X<3,!.
f(X,2):-X<5,!.
f(X,4).
y el segundo recuadro nos muestra los símbolos de corte la cual nos muestra que Y da muchos valores por lo tanto son valores erróneos.
f(X,0):-X<3.
f(X,2):-X<5.
f(X,4).
ahora utilizando el de corte CALCULO DEL MAXIMO.
El procedimiento para encontrar el valor máximo para una relación.
calculo del maximo.
donde MAX es =X si x es mayor o igual a Y y MAX es Y si X es menor a Y.
max(X,Y,MAX).
max(X,Y,X):-X>=Y.
max(X,Y,Y):-X<Y.
max(X,Y,X):-X>=Y,!.
max(X,Y,Y).
Ejemplo 3.
Definiremos ahora la relación 'not(Meta)' y la utilizaremos para realizar otra versión del
ejemplo 1 anterior :
'not(Meta)' se puede definir :
Si Meta tiene éxito, entonces not(Meta) falla;
de otro modo, not(Meta) tiene éxito.
en Prolog :
El procedimiento para encontrar el valor máximo para una relación.
calculo del maximo.
donde MAX es =X si x es mayor o igual a Y y MAX es Y si X es menor a Y.
max(X,Y,MAX).
max(X,Y,X):-X>=Y.
max(X,Y,X):-X>=Y,!.
max(X,Y,Y).
Ejemplos:
Ejemplo 1:
Para decir en Prolog "Juan maneja todos los lenguajes excepto Prolog":
Si X es prolog entonces 'Juan maneja X' es falso
de otro modo, Si X es un lenguaje entonces 'Juan maneja X'.
en Prolog, para indicar que algo es 'falso' (no verdadero) se utiliza una meta especial 'fail',
la que siempre falla, provocando que la meta relacionada 'falle' :
Ejemplo 2:
Ahora definiremos la relación 'diferente(X,Y)' :
Si X y Y empatan (match) entonces 'diferente(X,Y)' falla;
de otro modo 'diferente(X,Y)' tiene éxito.
En prolog:
Definiremos ahora la relación 'not(Meta)' y la utilizaremos para realizar otra versión del
ejemplo 1 anterior :
'not(Meta)' se puede definir :
Si Meta tiene éxito, entonces not(Meta) falla;
de otro modo, not(Meta) tiene éxito.
en Prolog :






No hay comentarios:
Publicar un comentario