Haskell para Dummies

Hola seguidores quiero hacer esta entrada con el animo de dar informacion importante y esencial a las personas que quieran iniciarse en la programacion funcional pero que no tienen un profesor o una persona que los oriente.

Que es la programacion funcional?

Segun Wikipedia :

En ciencias de la computación, la programación funcional es un paradigma de programación declarativa basado en la utilización de funciones aritméticas que no maneja datos mutables o de estado. Enfatiza la aplicación de funciones, en contraste con el estilo de programación imperativa, que enfatiza los cambios de estado. La programación funcional tiene sus raices en el cálculo lambda, un sistema formal desarrollado en los 1930s para investigar la definición de función, la aplicación de las funciones y la recursión. Muchos lenguajes de programación funcionales pueden ser vistos como elaboraciones del cálculo lambda.

Segun Haskellwiki :

La programacion funcional es un estilo de programacion que modela computaciones como la evaluacion de las expresiones

Algunos lenguajes de programacion que aceptan este paradigma son: Scheme, Clojure, Racket, Erlang, Objective Caml, Haskell and F#. Aunque muchos otros tales como Java, C/C++, python entre otros acepten este estilo de programacion.

Que es Haskell?

Es un lenguaje de programacion puramente funcional, es decir que a diferencia de otros lenguajes que aceptan la programacion funcional este se caracteriza por su transparencia referencia y por no poseer efectos colaterales.

Que debo hacer para empezar a estudiar Haskell?

Primero que todo debes tener animos para hacerlo, el aprendizaje tiene momentos alegres y sobre todo gratificantes pero seamos sinceros, existen otros momentos en lo que habra frustracion y querras dejarlo todo, basta con descansar un poco y continuar despues, si no logras continuar y por el contrario te estancas, busca ayuda con los recursos de abajo.

Segundo, descarguen el interprete o el compilador (cualquiera de los dos son utiles) para que puedan probar los programas: Hackage plataform.

Tercero Cuando ya hallan bajado el interprete utilicen algun editor como el bloc de notas, yo les recomiendo Geany, un editor que utiliza un coloreado para las palabras claves de Haskell: Geany.

Cuarto Despues de que abran su editor de texto y coloquen lo siguiente texto:

square :: Int -> Int

square n = n*n

Guardenlo con extension *.hs ejemplo: square1.hs

Sexto Abranlo con Hugs, el editor que descargaron (o GHCi) y simplemente pongan square 4 o cualquier numero que se les ocurra. Divertido, no?. Si estan en Ubuntu pueden seguir este tutorial , si estan en windows les recomiendo ver este video (no es mio) resumiendo los pasos antes referidos.

Despues de realizar los pasos les recomiendo que lean, programen, vuelvan a leer, vuelvan a programar y no paren hasta que conozcan profundamente el lenguaje, el paradigma funcional y los problemas que puedan resolverse. Bienvenidos a este maravilloso lenguaje de programacion.

Recursos

Libros

  • A gentle introduction to Haskell, Es un gran libro, un poco dificil para aquellos que apenas comienzan con Haskell pero grandioso para los estudiantes intermedios.
  • Real world Haskell Un libro donde donde ademas de enseñarte sobre el lenguaje y el paradigma, te muestran las aplicaciones de Haskell en la web, las interfaces de usuario, programacion en la red, entre muchas otras.
  • Learn you a haskell for great good: Sin duda uno de mis libros favoritos no solo para iniciar con Haskell sino por la forma inusual de como esta escrito y presentado al publico.
  • Haskell Wikibook : un tutorial tipo wiki, tiene ejercicios por cada seccion y suele ser muy bueno para resolver dudas

Ejercicios

  • Project Euler : Uno de los mejores sitios para resolver ejecicios de programacion y matematicas, los 25 primeros ejercicios son faciles… los siguientes no tanto.

Otros recursos

  • Stackoverflow Personalmente disfruto con esta pagina, hay miles de personas interesadas en responder tus preguntas, y no solo eso, tambien en ampliar tu conocimiento sobre lenguajes, arcquitecturas, paradigmas, hardware, etc.  Lo que aprenderas alli no lo aprenderas en ninguna parte (Al menos no tan facil).
  • Haskell en Reddit : una web colaborativa en la que podras «postear» links para ir a blogs de interes, paginas afines a Haskell, noticias e incluso fellowships.
  • El canal Haskell de Irc es un canal activo con mas de 800 personas conectadas que te podran ayudar en las preguntas que tengas: #haskell
  • Haskell Wiki Una wiki sobre haskell, tiene una gran cantidad de informacion toda relacionada con haskell pero sobre esto tambien con ciencias basicas (fisica, quimica, matematicas, biologia)  como tambien ciencias sociales.
  • Web Oficial: Noticias, wikis, plataformas, interpretes, etc.
  • Un sheetnote (hoja de funciones y sintaxis del lenguaje)

Si no saben ingles Google traductor les seria de gran ayuda.

Espero que les halla agradado la entrada y sobretodo les halla sido util, si necesitan ayuda yo con mucho gusto les podre colaborar en lo que pueda. Saludos! 😀

5 comentarios en “Haskell para Dummies

  1. Vengo ver Khan Academy y todo lo que se haga con el fin de multiplicar el conocimiento de una forma sencilla dirigido a disminuir nuestra ignorancia, sea bien venido..
    Gracias!

  2. para la gente que no entiende un pomo el ingles o se le hace complicado …. como va a salir adelante .. porque quiero aprender haskell y NO ABSOLUTAMENTE NO EL INGLES….¡¡¡¡¡ que hacemos !!!!!

  3. Tutorial muy malo: Mencionas términos que no conoces, y parece que solamente copiaste y pegaste de otras fuentes. Un hecho a saber: estoy comenzando a estudiar Haskell.

      • El título de la entrada «Haskell para dummies» asume que tus lectores, entre ellos yo mismo, sabemos poco o nada sobre ese lenguaje, lo cual es cierto. Pero la información que incluyes no aporta nada para que dejemos de ser dummies; todo lo contrario, terminamos más confundidos que antes de leer el blog.

        Entre otras cosas debo mencionar que el copy and paste que hiciste no está bien hecho; por ejemplo, mencionas en la sección «¿Qué es Haskell»: «… éste se caracteriza por su transparencia referencia…». De entrada eso está mal escrito, lo correcto es: «transparencia referencial». Ahora, si los que leemos el blog somos dummies, por supuesto que no tenemos idea de lo que es la transparencia referencial, y no lo explicas para nada. También mencionas que Haskell no tiene efectos colaterales, y vuelvo a lo mismo, los dummies no tenemos idea (o teníamos hasta antes de estudiar Haskell o programación funcional) de lo que es un efecto colateral.

        Quizás lo mejor que puedes hacer es cambiarle el nombre al blog a algo como «Recursos para Haskell», o parecido.

        ¿Porqué soy tan crítico? Porque también escribo blogs, y porque soy profesor de programación en la UNAM. Entonces, cuido mucho el título de mis entradas para no confundir a los lectores, ni para darles falsas expectativas. Cuando pretendo escribir un recetario, así se los hago saber a la gente. Y cuando voy con más profundidad sobre un tema, aplico la misma regla y se los menciono al principio.

Deja un comentario