Hackage tiene varios paquetes para transformadores monad:mtl, transformadores, mónadas-fd, monadLib, y la paradoja de la elección
- mtl: biblioteca transformador Mónada
- transformers: functor hormigón y monad transformadores
- monads-fd: clases Monad, utilizando las dependencias funcionales
- monads-tf: clases Monad, utilizando familias de tipo
- monadLib: una colección de transformadores de mónada.
- mtl-tf: Biblioteca de transformadores Monad utilizando familias de tipos.
- mmtl: biblioteca modular Mónada transformador
- mtlx: Biblioteca transformador Mónada con índices de tipo, proporcionando copias de 'libre'.
- compose-trans: transformadores Composable monad
(y tal vez me perdí algunos)
los cuales uno será usamos?
mtl es el que está en la plataforma Haskell, pero sigo escuchando en reddit que no es genial.
Pero, ¿qué tiene de malo la elección de todos modos, no es solo algo bueno?
Bueno, vi cómo, por ejemplo, los autores de datos de acceso tuvieron que hacer todo esto para atender a tan sólo las opciones más populares:
- biblioteca-monadLib-descriptor de acceso de datos: funciones de acceso para las mónadas de monadLib biblioteca
- ficha de descriptor de acceso-mónadas-fd: uso Accessor para acceder estado en mónadas-FD Estado de clase mónada
- biblioteca de descriptor de acceso de datos-mónadas-tf: uso Accessor para acceder estado en la familia tipo mónada Estado mónadas-tf
- biblioteca data-accessor-mtl: use el acceso para acceder al estado i n Estado mtl clase mónada
- biblioteca de descriptor de acceso-transformadores de datos: Uso Accessor para acceder estado en transformadores mónada Estado
me imagino que si esto sigue y sigue, por ejemplo, varios paquetes de flecha que compiten evolucionan, podríamos ver algo como: spoonklink-arrows-transformers, spoonklink-arrows-monadLib, spoonklink-tfArrows-transformers, spoonklink-tfArrows-monadLib, ...
Y luego me preocupa que si spoonklink se bifurca, Hackage se quedará sin espacio en disco . :)
Preguntas:
- ¿Por qué hay tantos paquetes de transformadores mónada?
- ¿Por qué mtl [consider] uncool?
- ¿Cuáles son las principales diferencias?
- La mayoría de estos paquetes que aparentemente compiten fueron escritos por Andy Gill y son mantenidos por Ross Paterson. ¿Significa esto que estos paquetes no compiten, sino que funcionan de alguna manera? ¿Y Andy y Ross consideran que alguno de sus paquetes es obsoleto?
- ¿Cuál debería usted y yo debemos usar?
Este enlace me ayudó a entender mtl vs transformadores http://www.haskell.org/haskellwiki/Monad_Transformer_Library –
Desplácese hacia abajo para [comentario @jberryman] (http://stackoverflow.com/questions/2769487/mtl-transformers -monads-fd-monadlib-and-the-paradox-of-choice # comment8791863_2769664)! ¡Usa mtl o transfomers, se hicieron compatibles! – Sophie