====== Examen Parcial - 75.23. Inteligencia Artificial - 17/11/06 ====== **Cátedra:** Cabrera\\ **Fecha:** Primera Oportunidad - Segundo Cuatrimestre 2006\\ **Día:** 17/11/2006 ===== Enunciado ===== - Escriba un predicado que, dado un número, devuelva una lista con ése y sus anteriores mayores a 0 - Escriba un predicado que, dada una lista, retorne el menor de sus elementos - Escriba un predicado que, dados dos números y una lista, determine si aparecen de manera consecutiva en la misma ===== Resolución ===== domains lista = integer* predicates nondeterm anteriores(integer,lista) nondeterm ady(integer,integer,lista) nondeterm minLista(lista,integer) %Auxiliar para encontrar el mínimo entre dos números nondeterm elMenor(integer,integer,integer) clauses %Si el número es cero, no tiene anteriores anteriores(0,[]):-!. %Si no, se agrega el número como cabeza, y se genera una cola con sus anteriores anteriores(X,[H|T]) :- H = X, X1 = X-1,anteriores(X1,T). %El mínimo de una lista de un elemento es él mismo minLista([X],X). %O es el mínimo entre la cabeza y el mínimo de la cola minLista([H|T],Min):-minLista(T,R), elMenor(H,R,Min). %El mínimo entre dos es uno elMenor(X,Y,X):- X ===== Discusión ===== Si ves algo que te parece incorrecto en la resolución y no te animás a cambiarlo, dejá tu comentario acá.