44 votos

Recursos para aprender la teoría práctica de las categorías

He estado haciendo programación funcional, principalmente en OCaml, desde hace un par de años, y recientemente me he aventurado en la tierra de las mónadas. Ahora soy capaz de trabajar con ellas, y entiendo cómo usarlas, pero estoy interesado en entender más sobre sus fundamentos matemáticos. Estos fundamentos suelen presentarse como procedentes de la teoría de categorías. Así que tenemos explicaciones como la siguiente:

Una mónada es un monoide en la categoría de endofunctores.

Ahora, mi objetivo (parcialmente) es entender lo que significa. ¿Puede alguien sugerir una introducción suave a la teoría de categorías, en particular una dirigida a programadores ya familiarizados con un lenguaje funcional como ML o Haskell, con referencias para una lectura adicional? Los recursos no necesariamente dirigidos a los programadores, pero accesibles a los lectores con una formación en matemáticas discretas y lógica de primer orden, también serían bastante aceptables.

46voto

Gus Paul Puntos 430

Recursos en línea:

Libros (no gratuitos):

  • Benjamin Pierce: Basic category theory for computer scientists, MIT Press 1991; una ligera ampliación/actualización del anterior (y gratuito) Informe CMU-CS-88-203
  • MacLane: sólidos fundamentos matemáticos, pero apenas referencias a la informática
  • Martin Brandenburg - Introducción a la teoría de las categorías (en alemán)

Teoría de categorías en Haskell:

Otra lista

20voto

Edward Luong Puntos 108

Dado que sdvccv ya señaló una serie de buenas fuentes para el aprendizaje de la teoría de las categorías aplicada a la CS, voy a tratar de proporcionar algunos puestos de guía.

Mi libro favorito sobre el tema es Practical Foundations of Mathematics, de Paul Taylor, ya que hace un muy buen trabajo al darte una visión general (desafortunadamente no siempre te da suficientes detalles si no tienes ya una formación en lógica). El libro de Bart Jacobs "Categorical Logic and Type Theory" también es muy fácil de leer.

En general, creo que lo más importante que hay que entender para aplicar las categorías a la informática es la correspondencia Curry-Howard-Lambek, que afirma vagamente que los cálculos lambda, las lógicas intuicionistas y las categorías cerradas cartesianas (categorías en las que hay productos y espacios de funciones) son lo mismo. Pruebas y tipos que se transcribió a partir de algunos apuntes de conferencias de Girard es una excelente fuente para la parte de la correspondencia entre Curry y Howard. El libro de Steve Awodey y estos notas de Samson Abramsky son buenos lugares para ver esto traducido a un lenguaje categórico. En cuanto a las conexiones con los topos, el libro Sheaves in Geometry and Logic de Mac Lane es muy bueno.

A continuación, probablemente querrá aprender sobre el álgebra categórica y universal. Una de las aplicaciones más inmediatas y accesibles de estas ideas es la teoría de tipos de datos algebraicos (categóricamente: álgebras iniciales para funtores polinómicos) y mapas y pliegues entre ellos. Mónadas también forman parte de este tema ya que son constructores de tipos (endofunctores) que también tienen una multiplicación y una unidad. La notación do de Haskell corresponde a la formación de la categoría Kliesli para una mónada.

El naciente campo de las álgebras universales ha sido muy útil para formalizar las nociones de estado y observación . También hay algunas conexiones emergentes entre álgebra y lógica modal .

Por último, si no estás agotado puedes aprender sobre la dualidad de la piedra, que es una forma de relacionarse " lógica de las propiedades observables " y topología. Para el informático, la dualidad de Stone es principalmente útil para dar una interpretación lógica a la teoría del dominio pero los matemáticos pueden reconocer la dualidad entre los anillos conmutativos y los espectros de Zariski como un caso especial.

6voto

MortenSickel Puntos 123

TWF Semana 89 para su pregunta específica, y Los hallazgos de esta semana en física matemática en general, para las maravillosas presentaciones de todo tipo de cosas relacionadas con la categoría.

6voto

Jarrod Dixon Puntos 9201

Categories for the working mathematician, de Maclane, es probablemente bueno también para algunos informáticos en activo. No se discute el gusto, por supuesto.

5voto

deadprogrammer Puntos 4521

Teoría de la categoría de Steve Awodey, de la Universidad Carnegie Mellon, ha sido uno de mis textos favoritos. Tiene 266 páginas y, aunque no es un "libro de teoría práctica" (por ejemplo, uno dirigido a programadores), es muy fácil de seguir y está muy bien explicado.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X