You are on page 1of 9

Clase 5

Recursividad Predicados: Cut & Fail

Ing. Sal Prez Vega

Predicado Fail

El predicado fail es un predicado predefinido, sin argumentos, que siempre fracasa como objetivo, lo que hace que se desencadene automticamente el proceso de backtracking.

Uso del predicado Fail Completar el siguiente Programa Clauses


.. listado:- padre(juan,X), write(X),nl.

Predicado CUT (!)


Los diseadores del lenguaje incorporaron un operador de corte que permite podar los espacios de bsqueda.

Predicado CUT (!)


Operacionalmente se define como:
La meta ! siempre tiene xito y provoca el descarte de todas las (ramas) alternativas que quedaron pendientes de ser exploradas desde el instante en que se utiliz para resolver la regla conteniendo dicho !.

Proceso de vuelta atrs (backtracking)


Prolog vuelve automticamente atrs si es necesario para satisfacer un objetivo. Elimina la necesidad de que el programador controle explcitamente es te proceso En algunos casos puede dar lugar a programas ineficientes Se puede controlar el backtracking haciendo uso de la operacin de corte (cut)
Ejemplo sencillo

Ejemplo usando: CUT (!)


Construir el programa a traves de la siguiente regla:

nota(X,Y):- W=(X+Y)/2,W>10.5, write("aprobado"). nota(_,_):- write("desaprobado").

Recursividad
Crear un programa para listar los 10 primeros nmeros 2. Listar los 20 primeros nmeros pares 3. Listar los 5 primeros nmeros primos 4. Listar los 7 primeros nmeros de la serie de fibonacci. 5. Listar los 5 primeros nmeros factoriales impares
1.

Gracias!
Ing. Sal Prez Vega

sperez@utp.edu.pe

You might also like