756 votos

Introducción a Haskell

Durante unos días he tratado de envolver mi cabeza en torno a la programación funcional paradigma en Haskell. He hecho esto por la lectura y tutoriales, ver videos, pero nada realmente parece palo. Ahora, en el aprendizaje de varias imperativo/OO lenguajes (como C, Java, PHP), ejercicios han sido una buena manera de que me vaya. Pero como yo no sé realmente lo que Haskell es capaz de hacer y porque hay muchos nuevos conceptos a utilizar, yo no he sabido por donde empezar.

Entonces, ¿cómo se aprende Haskell? ¿Qué te ha hecho realmente "romper el hielo"? También, las buenas ideas para el comienzo de los ejercicios?

176voto

jitter Puntos 35805

Algunos de mis colegas tenido una buena experiencia con Aprender un Haskell para Bien!.

Tutorial dirigido a personas que hayan experiencia en la programación imperativa idiomas pero no he programado en un el lenguaje funcional de antes.

Y comprobar las respuestas aquí también

102voto

David Johnstone Puntos 10565

He aquí un buen libro que se puede leer en línea: Mundo Real Haskell

La mayoría de las Haskell programas que he hecho han sido para resolver el Proyecto de Euler problemas.

Una vez que el consejo que leí no hace mucho tiempo era el que debe tener un estándar de conjunto de los problemas simples que usted sabe cómo resolver (en teoría) y, a continuación, siempre que trate de aprender un nuevo idioma de implementar los problemas en ese idioma.

72voto

eevar Puntos 1005

He disfrutado viendo este 13 episodio de la serie Funcional a la Programación con Haskell.

C9 Conferencias: Dr. Erik Meijer - Programación Funcional De Los Fundamentos: http://channel9.msdn.com/shows/Going+Deep/Lecture-Series-Erik-Meijer-Functional-Programming-Fundamentals-Chapter-1/

69voto

yairchu Puntos 9694

Para agregar en las respuestas de otros - no es una útil que le ayudará a la hora de codificación (por ejemplo, cuando la solución de proyecto Euler problemas): Hoogle. Puede utilizar la interfaz de línea de comandos o la interfaz web.

Línea De Comandos

Después de instalar el Haskell plataforma asegúrese cabal install hoogle

Hoogle ejemplo de uso:

Tiene una función f x = 3 * x + 1 y usted desea aplicar en (5 :: Int), entonces se aplican en el resultado y en ese resultado y así obtener una lista infinita de esos valores. Usted sospecha que puede existir ya una función para ayudarle a usted (no específicamente para su f ).

Esa función sería de tipo (a -> a) -> a -> [a] si se tarda f 5 o a -> (a -> a) -> [a] si se tarda 5 f (asumimos que la función general de los tipos y no solo Ints)

$ hoogle "a -> (a -> a) -> [a]"
Prelude iterate :: (a -> a) -> a -> [a]

yep, la función que necesitas ya existe y se llama iterate. se utiliza mediante la iterate func 5!

Interfaz Web

El resultado para el mismo ejemplo se puede encontrar aquí.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X