Curso Haskell Intermedio

Curso Haskell Intermedio λ Club

¡Bienvenidos sean todos al curso de Haskell nivel intermedio! A lo largo de esta serie de talleres aprenderemos sobre algunas de las características que hacen a Haskell un lenguaje tan particular.

Al finalizar el curso, tendrás varias herramientas que te serán de utilidad para escribir código de Haskell limpio, eficiente e idiomático, pues explotarás al máximo el paradigma puramente funcional y declarativo.

Pre-requisitos

Todos son bienvenidos a tomar el curso, sin embargo, es recomendable tener habilidad con los siguientes conceptos:

  • Declaración de funciones.
  • Funciones recursivas.
  • Caza de patrones sencilla.
  • Funciones de mayor orden (map, filter, foldl).
  • Datos algebráicos (data).

Índice

Plataforma

Con la finalidad de que todos puedan ejecutar el código en un mismo entorno, estaremos utilizando un servidor con JupyterHub. Puedes acceder al servidor en la URL http://104.45.192.142. Si no te es familiar el uso de notebooks, puedes revisar la siguiente cheat sheet en datacamp.

La primera vez que ingreses al servidor, te pedirá un usuario y contraseña. Ingresa el usuario y contraseña que deseas utilizar, únicamente tomando en cuenta que serán los mismos que usarás en futuras ocasiones. En caso de olvidar tus datos de ingreso, puedes ponerte en contacto con @JPYamamoto en el servidor de Discord.

Para descargar los archivos de este repositorio, directamente en el entorno de JupyterLab, puedes usar el siguiente enlace:

Actualizar repositorio

Temario

El curso abarcará los siguientes temas:

  • Tipos avanzados.
    • Records.
    • Newtype.
    • Polimorfismo.
    • Clases de tipos.
    • Restricciones de tipos.
  • Funciones.
    • Declarar operadores.
    • Captura de argumentos.
    • Patrones irrefutables.
    • Funciones parcialmente aplicadas.
    • Estilo libre de puntos.
    • Composición de funciones.
    • Aplicación de funciones.
  • Álgebras.
    • Semigrupos.
    • Monoides.
    • Functores.
    • Aplicativos (Functores aplicativos).
    • Mónadas.

En esencia no sabemos cuánto durará el curso, pues valoramos la comprensión de los temas más que cumplir una agenda. Por lo mismo, el ritmo de las clases se irá definiendo sobre la marcha.

Código de Conducta

Esperamos que este curso sea un espacio agradable y positivo para todos los miembros. Con esa finalidad, el curso se alineará al código de conducta de la comunidad λ Club, disponible en Código de Conducta.

Además, el curso se llevará completamente a través del servidor de Discord de la comunidad, al cuál es posible el acceso únicamente tras haber aceptado el código de conducta. En el canal #codigo-de-conducta es posible consultarlo.