martes, 18 de febrero de 2014

Un Libro al Més: Febrero

¡De vuelta a las nubes! :) Como les mencioné en un post anterior, uno de mis objetivos personales del 2014 es leer un buen libro al mes (lo cual no es tan fácil como parece, jajaja). Con una gran serie de responsabilidades en la universidad y muchas cosas en la mente, no había tenido la oportunidad de continuar con esta meta. Sin embargo, lo intentaré nuevamente.

Para el mes de Febrero decidí retomar un libro pequeño, pero violento y poderoso:

Basic Category Theory for Computer Scientists
de Benjamin Pierce
(publicado en 1991, como parte de la serie "Foundations of Computing" de MIT Press)

Ya hace tiempo había comenzado a leerlo, pero nunca tuve la oportunidad de terminarlo. ¡Y es excelente! Aunque no es una lectura ligera, definitivamente, jajaja. Este libro ofrece una introducción a un tema sumamente abstracto, pero de mucha utilidad práctica (especialmente en Computación): La Teoría de Categorías.

En sus principios esta teoría fue menospreciada por ser "demasiado abstracta". De hecho, se le conocía comúnmente por el nombre de "Generalized Abstract Nonsense", lo cual me parece genialmente apropiado, jajaja. Sin embargo, avances en ciencias de la computación han abierto nuevas perspectivas y necesidades para entender la matemática detrás de lo que hacemos. Eventualmente la Teoría de Categorías se hizo notar, pues introdujo muchísimas propiedades interesantes que han sido aplicadas en muchas áreas ya. En particular, son el secreto detrás de la creación de los Monads en los lenguajes funcionales (y posteriormente de los Arrows, que actualmente implementa Haskell).

En resumidas cuentas, la teoría de categorías se define como una colección de objetos y una colección de flechas, que relacionan estos objetos entre si (algo así como una noción generalizada de un grafo). Estas colecciones no son necesariamente conjuntos, aunque los mismos brindan una buena intuición para la teoría que se presenta. La intención de la teoría es descubrir propiedades comunes, de la forma más general posible, usando estas flechas como base para las construcciones involucradas (en vez de los elementos de la colección de objetos, como se esperaría en Teoría de Conjuntos). Finalmente, una categoría puede verse como una generalización de conjuntos junto con todas funciones totales entre ellos. ¡Esta belleza de teoría engloba a todos los objetos con un comportamiento similar a este! Por poner algunos ejemplos:
  • Objetos: Conjuntos. Flechas: Funciones totales.
  • Objetos: Monoides. Flechas: Homomorfismos.
  • Objetos: Grupos. Flechas: Homomorfismos.
  • Objetos: Flechas. Flechas: Transformaciones naturales (wait... what?)
La lista continúa... ¡pero hay más! La teoría es tan general que permite agrupar Ω-álgebras arbitrarias, incluso con condiciones E sobre los operadores que incluyen (llamadas (Ω, E)-álgebras). Los monoides, grupos, álgebras booleanas, álgebras de términos, etc., son todos casos especiales de éstas últimas. ¡Incluso hay una categoría para espacios topológicos! Aquí las flechas serían las funciones continuas. Ya la topología generaliza la matemática a niveles extraordinarios. ¡Las categorías, como si nada, son una generalización aún mayor (la topología es sólo un caso especial de estas últimas)! ¿Verdad que se ve un poco más lo de "Generalized Abstract Nonsense"? Jajaja. Aunque la verdad es que me encanta que sea tan abstracto y potencialmente aplicable a tantas estructuras diferentes.

Definitivamente este libro es uno que te puede tener con el ceño fruncido por unos buenos 15 minutos entendiendo lo que dice solamente media página pero, al entender finalmente, la gratificación es enorme. ¡Perfecto para expandir la mente! Lo recomiendo 100% si les gusta la matemática y las cosas abstractas locas. (We are few, but we are proud. XD)

Y bueno, con eso los dejo hasta una próxima entrada. ¡Que la fuerza de los functores los acompañe! :D

No hay comentarios:

Publicar un comentario