• Domingo 22 de Diciembre de 2024, 09:25

Autor Tema:  Re: Algunos ejemplos  (Leído 7758 veces)

De Profundiis

  • Miembro activo
  • **
  • Mensajes: 89
    • Ver Perfil
Re: Algunos ejemplos
« en: Viernes 13 de Diciembre de 2002, 02:40 »
0
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.

Iluvatarm

  • Miembro activo
  • **
  • Mensajes: 38
    • Ver Perfil
Algunos ejemplos
« Respuesta #1 en: Viernes 7 de Febrero de 2003, 22:23 »
0
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