31 oct 2007

Haskell y yo

Haskell es un lenguaje de programación que sigue el paradigma "declarativo", dentro de este conjunto de lenguajes se encuentran los funcionales y los lógicos (quiza haya mas),Haskell sigue el paradigma funcional, algunos piensan, equivocadamente, que este tipo de lenguajes son sinonimo de "muchos parentesis", pero no, mas bien que en ellos "todo" es o "debe" ser una función, asi para mandar a imprimir un mensaje como "hola" se ocupa una función, ahora bien Haskell es funcional y declarativo, seguramente han de estar preguntandose a que me refiero con declarativo, pues que a diferencia de "otros" (esto es demasiado ambiguo) lenguajes, en Haskell no se dice el "como" si no el "que", asi pues en C o Java podemos escribir un programa para sumar los primeros 5 numeros naturales de la siguiente forma:

int suma=0;

for(int i=0;i<4;i++) suma ="suma+i;" style="font-weight: bold;">
rango n m = [x |x<-[n..m],x<100]

Defino un conjunto, cuya notación es muy parecida a la que se usa en matemáticas, para describir a las x's entre n y m (los entradas) que son menores que 100 (hay ejemplos mas complejos), para obtener esto en un lenguaje no funcional hay que escribir mas, y seguramente no sería tan claro que es lo que hace tal programa (excepto para quien lo escribió).

Otra carectiristica importante es que en los lenguajes funcionales puros, no es permitido la asignación: x:=algunValor, ya que esto permite efectos colaterales que darian lugar a declarar programas que no sean funciones, sin embargo, se tiene la siguiente operación: x=algunValor, pero aqui el significado es otro, aqui x se esta definiendo como algunValor, y x no puede cambiar, es parecido a definir una constante.

Estas son algunas de las caracteristicas de los lenguajes funcionales, en las siguientes entradas pondre algunos problemas y su solucion en haskell, eso puede ser útil a muchos.

No hay comentarios:

ga