Encontrando mi camino a través de Scalaz [duplicado]
Posible duplicado:
Buena introducción de scalaz
Me gustaría aprender más sobre Scalaz, posiblemente usando Scalaz7 para evitar volver a cablear mi cerebro una vez que se declare estable. Mi problema es que Scalaz contiene mucha funcionalidad. Si bien la mayor parte está destinada a ser independiente de otras partes, me gustaría tener una visión general de la funcionalidad global que ofrece Scalaz y cómo está organizada. Que yo sepa, Scalaz ofrece, entre otras cosas,
Functor
, Applicative
yMonad
rasgosnuevas mónadas comoValidation
(edit: resulta que es solo un aplicativo)transformadores de mónada (OptionT
, EitherT
....)Itereatee
sLens
esZipper
sSumado a esto, hay muchas conversiones implícitas y nuevos constructores comosome
que se superponen con la biblioteca estándar pero se comportan mejor con respecto a los tipos
:type Some(3) // Some[Int]
:type some(3) // Option[Int]
Tengo un conocimiento básico de la mayoría de estas construcciones, pero no domino ninguno de los conceptos.
¿Tiene alguna sugerencia en qué orden para aprender la biblioteca, qué dependencias lógicas existen entre los módulos? De manera más general, ¿dónde puedo encontrar una descripción general de alto nivel de la biblioteca?
EDITAR Parece que la mayoría de las respuestas están dirigidas a aprender los componentes básicos de la programación funcional, como las mónadas, por lo que trataré de ser más preciso. Tengo un conocimiento básico de Haskell y antecedentes matemáticos, por lo que mi problema no está relacionado con la teoría de categorías o la programación funcional básica.
Mi problema es que Scalaz es una enorme biblioteca. No sé qué encontrar dónde, qué métodos están disponibles o son útiles en varios tipos de datos. Lo que realmente necesito es un mapa que, por ejemplo, me diga que cuando quiero recorrer los recursos que deben eliminarse, es posible que desee considerar las iteraciones y qué tipo de operaciones puedo hacer con eso. Más como una panorámica de la funcionalidad disponible con la biblioteca.