En este apartado nos dedicaremos a estudiar predicados que realizan cálculos num´ericos sobre listas. El más básico es el que calcula la longitud de una lista, la forma más simple de definir un predicado longitud/2 tal que longitud(L,N) calcule la longitud N de una lista L es contando los elementos de forma recursiva: primero los de la cola y después los de la lista completa. Aquí tenemos dos definiciones distintas,
longitud1([],0).
longitud1([_|Xs],N):-longitud(Xs,M),N is M+1.
es una definici´on basada en la aritm´etica predefinida de Prolog y longitud2([],0).
longitud2([_|Xs],s(M)):-longitud(Xs,M). es una definición basada en la aritmética del sucesor definida por el usuario.
No hay comentarios:
Publicar un comentario