Honestamente, no creo que sea tan diferente de cómo otras personas aprenden Haskell.
Comience con los mismos recursos básicos para principiantes: tutoriales, Learn You a Haskell , Real World Haskell, etc. Estos lo pondrán al día con los conceptos básicos: efectivamente, le brindan el vocabulario que necesita para interactuar con el mundo de Haskell.
Una vez que tenga los conceptos básicos, que debería poder hacer sin siquiera terminar ninguno de los libros, el siguiente paso es comenzar a trabajar en algo. Esa es la mejor manera de entender realmente no solo el cómo sino también el por qué de la programación de Haskell.
- Cómo convertir una combinación dada a un solo número
- ¿Qué oración en el lenguaje de la aritmética de Peano es equivalente a decir que un programa dado se detendrá?
- ¿Cuáles son las mejores maneras de mejorar la habilidad de programación a través de las matemáticas?
- Cómo trabajar en unidades donde c = 1
- ¿Pueden todos estos números: -5, 2015.125, 4 ^ 100, 128 ^ -3 representados exactamente en una máquina de doble precisión? ¿Por qué y por qué no?
Aquí es donde puede optimizar su enfoque de aprendizaje para su formación matemática. Creo que hay dos cosas principales que podrías hacer de manera diferente:
- Elija un proyecto que esté más orientado matemáticamente. Una de las cosas buenas de Haskell es que hace que sea bastante natural expresar y trabajar con abstracciones matemáticas, por lo que podría intentar construir una biblioteca para su subcampo favorito. Es especialmente adecuado para cosas más algebraicas como, bueno, álgebra abstracta.
También puedes elegir un proyecto que use matemáticas que sabes para hacer algo genial. Dependiendo de sus preferencias, esto podría ser todo, desde algún tipo de aprendizaje automático hasta hacer una simulación física o incluso un juego.
- Aprende la teoría. Leer papeles Especialmente trabajos teóricos. Las “Perlas funcionales” y las actas de las conferencias ICFP y POPL son particularmente buenas. Puede comenzar con un libro como Tipos y lenguajes de programación y comenzar desde allí para tener una buena idea de la teoría detrás de los lenguajes de programación y los tipos que informan profundamente tanto el diseño de Haskell como lenguaje y el diseño de sus mejores bibliotecas. Tal vez incluso aprender un poco de teoría de categorías, ¡puede ser divertido!
Si comienza con algo de la teoría, puede usarla para informar el proyecto en el que desea trabajar. Podría implementar un lenguaje de programación o un asistente de prueba, por ejemplo. Esta es una excelente manera de comprender las complejidades de Haskell y el diseño práctico del proyecto, mientras aprovecha su experiencia matemática y, supongo, su curiosidad natural.