Ir al contenido

Traits

Tagless Final es semantica denotacional disfrazada

·10 mins
Cada trait en tu arquitectura hexagonal es un algebra tagless-final. Cada impl es un interprete. Has estado escribiendo semantica denotacional sin saberlo. Trazamos la conexion desde el paper de Kiselyov a traves de Cats-Effect de Scala hasta los port traits de Rust, y mostramos por que el patron que los academicos llaman ‘finally tagless’ es el mismo patron que los practicantes llaman ‘inyeccion de dependencias.’

Sintaxis y Semantica 3. El Problema de la Expresion

·6 mins
Agregar un nuevo tipo es facil en OOP, dificil en FP. Agregar una nueva operacion es facil en FP, dificil en OOP. Philip Wadler nombro esto el Expression Problem en 1998. Mostramos como se manifiesta en Rust y Scala, y anticipamos la resolucion.

Todo CLI en Rust 3. Persistencia JSON, contrato vs implementación

·18 mins
Tercera parte de la serie: definimos el contrato de persistencia con un trait genérico, implementamos dos adaptadores (in-memory y JSON a disco) y profundizamos en la diferencia entre interfaz e implementación como eje de la arquitectura hexagonal.

La Forja de las Typeclasses 🔥

·9 mins
Exploramos en detalle qué son las typeclasses, cómo se definen en Scala 2 y cómo se implementan en otros lenguajes como Haskell y Rust. A través de ejemplos prácticos, mostramos cómo modelar comportamientos de forma clara y escalable utilizando este poderoso patrón de diseño en la programación funcional. También analizamos la derivación automática y las mejoras que Scala 3 aporta en este ámbito.

Primeros Pasos en Rust 🦀

·5 mins
Mis primeras impresiones de Rust desde un enfoque de programación funcional (Scala y Haskell). Una mezcla de emoción, frustración y un cambio de paradigma en la forma de pensar.