SoloCodigo
Asuntos Oficiales => Sobre los Foros de SoloCodigo => Mensaje iniciado por: De Profundiis en Viernes 22 de Noviembre de 2002, 21:26
-
Hola a todos,
que digo yo, que no estaría mal un apartado sobre la programación lógica, declarativa y funcional. Para olvidarnos un poco de la programación imperativa (el clásico SI pasa esto HAZ esto, MIENTRAS pase esto HAZ aquello, etc...) y así tratar de aprender un poco de Visual Prolog, de Sicstus Prolog, de Haskell, etc...
Bueno, es una idea. He programado algo con Prolog y Haskell y, al menos, son una alternativa interesante.
Saludos a todos,
soy nuevo y me gusta el foro:P
-
:D:P:P
Eh solocodigo, solo quedan dos más, ¿no? Si lo apoyan dos más lo pones, ¿no?
:P
(qué poco éxito:()
Saludos
-
jejeje buen intento!:)
Venga, aunque debería mantenerme al margen para conservar la imparcialidad que se me presupone como administrador:P apoyo tu propuesta. He oído hablar del prolog en alguna ocasión pero no lo he tocado nunca y por lo que cuentas parece interesante. Vamos a ver, seguro que alguien más se anima.
Un saludo;)
-
Bueno dicen que saber nunca es malo,asi que no seria malo aprender una cosa mas.;)
Lo apoyo.
<<<r3ddsk1>>>
###########
SoloCodigo #
The Best ##
###########
B)
-
Hola,
solo quería poner un par de ejemplos en Prolog y Haskell, para que se hagan una idea de la potencia de estos lenguajes.
Por ejemplo, ¿cómo harían para invertir una cadena en C o Pascal o cualquier otro lenguaje imperativo? Seguro que lo saben.
Bien propondré tres problemas y sus soluciones con programación lógica (PROLOG) y programación funcional (HASKELL), a ver si les parece más interesante.
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, ojalá os haya picado la curiosidad y apoyéis esta iniciativa.
SALUDOS.
-
Bueno yo la apoyo solo esperemos que mas miembros lo apoyen.
<<<Saludos>>>r3dsk1>>>
-
¿Es que nadie se anima?
Saludos.
-
Hola,
tengo hecha una aplicación con Visual Prolog 5.1 (en realidad dos aplicaciones), sobre la gestión de ventas de una perfumería, con su propia base de datos, sus menús y todo lo que necesita una aplicación mínimamente aceptable.
El programa es realmente sencillo y fácilmente modificable y mantenible. Porque una de las ventajas de la programación declarativa es que los requisitos o el análisis previo a la implementación se convierte prácticamente en la propia implementación. Esto puede parecer raro al principio pero hace que los programas sean mucho más fáciles de modificar y mantener (por lo tanto, más baratos).
Si alguien quiere que le pase los archivos con la implementación de la aplicación en Visual Prolog 5.1 que me lo diga. Y si alguien quiere también el ejecutable porque no puede compilar los fuentes (que será algo normal porque no encuentro a nadie que tenga el VP5.1 por ninguna parte) pues se lo envio con mucho gusto.
Pondría alguna ventanita como hace r3dsk1, pero es que no sé cómo se hace.:)
Saludos.
¡Y apoyen la idea de este foro!
-
Hola,
El foro sobre Programación Lógica ha sido creado.
A disfrutarlo!:D
-