El libro

Programación efectiva con kaikai

Un libro de lectura, no un manual de referencia. La referencia vive en el repo del lenguaje, en kaikai/docs. Este libro es el acompañante extenso: capítulos que explican el porqué detrás del lenguaje y recorren programas ejecutables desde la primera página.

La inspiración estructural es The Go Programming Language de Donovan y Kernighan: prosa densa, programas reales desde el capítulo uno, casos de estudio integradores, ejercicios al final de cada capítulo. La inspiración pedagógica es Learn You a Haskell for Great Good! de Lipovača: tono cálido donde el material es nuevo, conceptos introducidos gradualmente, espacio para que el lector respire.

Para quién

Un programador con experiencia en algún lenguaje imperativo u orientado a objetos (Python, Go, Java, JavaScript, C#, Rust) que no necesariamente ha trabajado con lenguajes funcionales. Conceptos como tipos algebraicos, pattern matching, inmutabilidad por defecto y efectos visibles en el tipo se introducen con puentes desde lo que el lector ya conoce.

No es para principiantes absolutos. Hay que saber qué es una función, un tipo, una lista y una prueba.

Edición bilingüe

El libro existe en español e inglés, ambas ediciones de primera clase. Ninguna es traducción de la otra: cada una se escribió en su voz nativa, con ejemplos cuyos comentarios y nombres de archivo viven en el idioma de la edición que los cita.

Estado

El libro está en escritura activa. 19 capítulos planificados más 6 apéndices. El repositorio incluye el índice completo, los capítulos terminados y los ejemplos que cada capítulo cita. Se escribe y valida contra la edición Hanga Roa del lenguaje, la actual.

Borrador en evolución. Se lee online por capítulos; el PDF se regenera con cada cambio significativo del libro.

Contenidos

  1. Prólogo
  2. Capítulo 1 · Tour de kaikai
  3. Capítulo 2 · Pensar en kaikai
  4. Capítulo 3 · Tipos básicos y expresiones
  5. Capítulo 4 · Tipos compuestos
  6. Capítulo 5 · Sum types, uniones y `match`
  7. Capítulo 6 · Funciones y pipelines
  8. Capítulo 7 · Pruebas, propiedades y benchmarks
  9. Capítulo 8 · Módulos, imports, organización del código
  10. Capítulo 9 · Protocolos
  11. Capítulo 10 · Unidades de medida y branded types
  12. Capítulo 11 · Programación por contrato y refinement types
  13. Capítulo 12 · Efectos algebraicos
  14. Capítulo 13 · Concurrencia y memoria
  15. Capítulo 14 · Actores
  16. Capítulo 15 · Holes y kaikai con agentes IA
  17. Capítulo 16 · Tooling: el binario `kai`
  18. Capítulo 17 · Caso de estudio: servidor HTTP
  19. Capítulo 18 · Caso de estudio: ledger contable
  20. Capítulo 19 · Kinds: un catálogo de álgebras

Apéndices

  1. Apéndice C · Tabla de operadores y precedencia
  2. Apéndice D · Catálogo de efectos del stdlib
  3. Apéndice E · Glosario
  4. Apéndice F · Para seguir