He estado leyendo un excellent introduction to monads for Clojure programmers. El artículo ilustra que la mónada Identity es funcionalmente equivalente a de Clojure let y que la mónada Sequence/List es equivalente a para.Uso para la mónada de identidad en Clojure
Cuando el artículo llega a los transformadores de mónada, muestra un ejemplo que combina las mónadas Maybe y Sequence. Bien, entonces una razón para usar una mónada de secuencia en lugar de para es que puedo transformarla. Sin embargo, la transformación de una mónada de identidad no tiene sentido para mí, ¿no sería eso siempre equivalente a simplemente construir lo que sea que sea la mónada transformadora? Por ejemplo, si transformé Maybe with Identity, ¿no me acaba de dar un Maybe, que hubiera sido más fácil declarar directamente?
Puede alguien aclarar si hay un uso práctico en Clojure para la elección de una mónada de identidad sobre una vamos (tal vez no estoy pensando todo el camino a través de las implicaciones de los transformadores?), O es sólo existe para la integridad teórica?