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:
Prologinvertir([ ],[ ]).
invertir([H|T],L) :- invertir(T,Z), append(Z,[H],L).
Haskellinvertir [ ] = [ ]
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:
Prologbuscar(X, [X|_]).
buscar(X,[_|L]) :- buscar(X,L).
Haskellbuscar [ ] n = False
buscar (x:xs) n = if (x==n) then True else (buscar xs n)
3º LONGITUD DE UNA LISTA O ARRAY
Prologlon([ ],0).
lon([X|Y],N) :- lon(Y,M), N is M+1.
Haskelllon [ ] = 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.