2012-05-08 10 views
18

Como lo demuestra la Typeclassopedia, la pila actual de clases importadas de la teoría de categorías es un poco un accidente enredado de la historia, en lugar de un hermoso conjunto coherente.Rehacer las clases estándar

En particular, esto hace que sea bastante difícil seguir lo que está sucediendo.

¿Qué debería tener parece que esto, si las preocupaciones menores como la compatibilidad con versiones anteriores, la duplicación de código o las firmas de tipo cortas no eran un problema?

+1

Las clases no se importaron de la teoría de categorías. –

+0

@DonStewart: Tal vez no estaba claro. No pretendo que la idea de una clase de tipo provenga de la teoría de categorías. Me refiero a las clases de tipos de Haskell que se basan en la teoría de categorías: 'Functor',' Applicative', 'Monad', etc. – MathematicalOrchid

+0

OK. Revisé mi respuesta para distinguir los intentos de categorizar las clases numéricas; y las clases teóricas de categoría. –

Respuesta

28

Para algunos subconjuntos de las clases estándar se han intentado dar jerarquías revisadas.

numéricos clases de tipos

En particular, proporciona un conjunto mucho más rico de abstracciones matemáticas.

Además de esto, hay muchos otros diseños alternativos:

enter image description here

categóricas clases de tipos

Ha habido menos trabajo en the category-inspired classes, como Functor, mónada, Monoid, aplicativo y, por supuesto, Categoría.

La obra más importante es el paquete

  • category-extras, que proporciona una biblioteca muy rica de hecho, incluyendo el famoso zygohistoprepromorphism.

enter image description here

+0

+1 para muchas y muchas referencias interesantes. – MathematicalOrchid

+1

¿Alguna de las preguntas anteriores aborda la inversión de Monad/Functor? –

+0

Miré ese gráfico y mi cerebro explotó. o_O Pero entonces, es la teoría de categorías, ¿verdad? Hice _ask_ por eso ... ;-) – MathematicalOrchid

10

En cuanto a las clases "categóricos", también hay The Other Prelude. La jerarquía de clases descrita allí se ha implementado en Frege.

+0

Límite de voto diario maldito. :-P En cualquier caso, esto es posiblemente lo mejor que he leído todo el día. No solo The Other Prelude explica las principales clases de interés de una manera simple y concisa, sino que hasta el día de hoy nunca había oído hablar de Frege. :-D – MathematicalOrchid

+0

No se preocupe, @MathematicalOrchid, debido a la votación ... Don puso más esfuerzo en su respuesta y fue el primero. Y agregó buenos gráficos. – Ingo

+0

Frege suena extremadamente emocionante. ¿Cómo en nombre de la bondad lo pronuncias realmente? o_O – MathematicalOrchid

Cuestiones relacionadas