SoloCodigo
Programación Específica => Otros temas específicos => Programación Lógica => Mensaje iniciado por: De Profundiis en Viernes 13 de Diciembre de 2002, 02:40
-
Hola,
un par de ejemplos en Prolog y Haskell, para que se hagan una idea de la potencia de estos lenguajes.
1º CALCULAR LA INVERSA DE UNA CADENA:
Prolog
invertir([ ],[ ]).
invertir([H|T],L) :- invertir(T,Z), append(Z,[H],L).
Haskell
invertir [ ] = [ ]
invertir (x:xs) = (invertir xs)++
sencillo, ¿no? Como véis se emplea mucho la recursión. Diría yo que es algo básico en estos lenguajes y lo más importante, funciona con absoluta lógica, pues es lo que haría cualquiera de nosotros de cabeza para resolverlo de ahí su nombre.
2º BÚSQUEDA SECUENCIAL:
Prolog
buscar(X, [X|_]).
buscar(X,[_|L]) :- buscar(X,L).
Haskell
buscar [ ] n = False
buscar (x:xs) n = if (x==n) then True else (buscar xs n)
3º LONGITUD DE UNA LISTA O ARRAY
Prolog
lon([ ],0).
lon([X|Y],N) :- lon(Y,M), N is M+1.
Haskell
lon [ ] = 0
lon (x:xs) = lon xs + 1
Bueno, probadlo a ver si os funciona ( y a ver si lo entendéis). Prolog funciona con esa técnica que se llama unificación y con backtracking.
SALUDOS.
-
Aquí hay una pequeña introducción al Prolog para todos aquellos que no hayan tocado nunca ningún lenguaje de este tipo...
Está explicado paso a paso.
http://caminantes.metropoliglobal.com/web/informatica/prolog.htm (http://caminantes.metropoliglobal.com/web/informatica/prolog.htm)