¿Cuál es el mejor libro para aprender Haskell que tiene muchos ejemplos de cosas geniales que se pueden hacer con él que no se pueden hacer con otros idiomas, incluso si eso es a expensas del rigor?

Creo que la razón por la que no hay libros sobre Haskell considerados realmente geniales , es decir, al mismo nivel que SICP o The C Programming Language, se debe principalmente a que el estándar del lenguaje cambia con bastante frecuencia en formas que tienen implicaciones dramáticas para el estilo de programación.

Se ha convertido en un lenguaje capaz de ser utilizado en la industria a gran escala, pero continúa siendo un banco de pruebas para las ideas derivadas del experimento de cómo se puede escribir código práctico en un lenguaje vago y puramente funcional. La implementación original ni siquiera incluía mónadas. Haskell no era realmente el lenguaje en el que piensas hoy hasta 1998, mientras que el trabajo comenzó en 1987. Personalmente, aprendí mucho de la programación en estilo aplicativo y eso solo se convirtió en parte del estándar en 2014 a pesar de ser increíblemente obvio. Un punto de vista matemático.

La gran mayoría de los libros sobre Haskell se publicaron antes de 2010, lo que significa que todos están usando una versión del idioma dos actualizaciones antiguas. Mi favorito en general es probablemente la programación de Graham Hutton en Haskell y utiliza abrazos … que ni siquiera se ha mantenido desde 2006. También me gusta mucho el mundo real Haskell pero, nuevamente, salió en 2008. Al menos he escuchado los planes de Hutton en el lanzamiento de una segunda edición, así que tengo muchas esperanzas para eso.

Otra cosa que vale la pena señalar es que las esperanzas de un libro definitivo sobre Haskell probablemente se desvanecieron cuando Philip Wadler y Richard Bird tuvieron un desacuerdo sobre la segunda edición de su Introducción a la programación funcional (rebautizada como “Introducción a la programación funcional con Haskell” en la segunda edición , escrito únicamente por Bird). Si Wadler, como uno de los desarrolladores originales del lenguaje, se hubiera mantenido a bordo y actualizado el libro con cada informe importante, entonces podría haber sido lo que SICP era para Scheme. Tal como está, no conozco a nadie que haya leído la versión de Bird.

Es desafortunado en términos de accesibilidad, pero la escritura definitiva sobre Haskell existe en una serie de trabajos académicos. Así es como he aprendido hasta ahora. En gran parte están escritos en un estilo que no requiere un gran nivel de sofisticación matemática, pero la dificultad radica en el hecho de que la mayoría eran originalmente propuestas de ideas que luego se convirtieron en el estándar del lenguaje. Esto significa que el código real en ellos, además de usar Unicode y estar escrito en un estilo académico que difiere un poco de lo que verías en la práctica, es casi siempre un poco diferente de cómo terminó siendo implementado. Entonces, además de leerlos, tuve que pedirle a Haskellers experimentados que me tradujeran estos cambios para poder jugar con los ejemplos.

Sin embargo, hay una serie de documentos que están específicamente escritos para que los lectores puedan implementarlos de inmediato y que estén muy en línea con la descripción del OP: ” Estoy particularmente interesado en uno que tenga muchos buenos ejemplos de cosas interesantes”. puede hacer en Haskell eso sería más difícil o imposible en otros idiomas ”. Estas son las Perlas Funcionales de The Journal of Functional Programming.

Después de haber tratado de pasar por LYAH (al menos está tratando de hacer que el directorio telefónico sea emocionante con algunas caricaturas agradables), RealWorldHaskell (los ejemplos podrían haber funcionado con la versión de Haskell que salió cuando el libro era nuevo), el curso edx MOOC FP101x (me harté de toneladas de ejercicios de estilo “gotcha!”, Un conferenciante tremendamente dramático), ” Haskell ” de Wikibook (algo incompleto, pero no está mal), me topé con el siguiente sitio de reseñas:

http://bitemyapp.com/posts/2014-…

y parece que encontré otro internauta que prácticamente funciona y piensa igual que yo. Entonces, mi próximo paso será seguir su recomendación de probar CIS 194. Cuando vuelva a tratar de aprender el idioma.

Realmente recomiendo haskellbook. Este libro está dirigido a programadores sin experiencia en programación. Pero después de leer el libro, creo que esta afirmación es un poco exagerada. El libro va desde el cálculo lambda, que es la base de Haskell y FP en general, hasta Monad Transformers. Si haces los ejercicios a medida que sigues, creo que realmente puedes considerarte un programador intermedio de Haskell después de terminar el libro. Pero no esperes que eso suceda pronto; el libro tiene alrededor de 1200 páginas y algunos de los ejercicios realmente no son triviales. Para obtener una descripción general de por qué este libro supera a todos los demás libros, puede ver LambdaConf 2015: cómo aprender Haskell en menos de 5 años donde uno de los autores explica lo que hizo mal tratando de aprender Haskell y donde la mayoría de los recursos de aprendizaje falla.