Znajdowanie mojej drogi przez Scalaz [duplikat]

Możliwy duplikat:
Dobre wprowadzenie w skalazie

Chciałbym dowiedzieć się więcej o Scalazie, być może używając Scalaz7, aby uniknąć ponownego okablowania mojego mózgu po uznaniu go za stabilny. Moim problemem jest to, że Scalaz zawiera wiele funkcjonalności. Chociaż większość z nich ma być niezależna od innych części, chciałbym mieć widok z lotu ptaka na globalną funcitonality oferowaną przez Scalaz i jak jest zorganizowana. O ile mi wiadomo, Scalaz oferuje między innymi

Functor, Applicative iMonad cechy,nowe monady takie jakValidation (edycja: okazuje się, że jest to tylko zastosowanie)transformatory monadowe (OptionT, EitherT....)ItereateesLensesZippers

Do tego dochodzi wiele niejawnych konwersji i nowych konstruktorów, takich jaksome które pokrywają się ze standardową biblioteką, ale zachowują się lepiej pod względem typów

:type Some(3) // Some[Int]
:type some(3) // Option[Int]

Mam podstawowe pojęcie o większości tych konstrukcji, ale nie posługuję się żadną z tych koncepcji.

Czy masz jakieś sugestie, w jakiej kolejności nauczyć się biblioteki, jakie istnieją zależności logiczne między modułami? Bardziej ogólnie, gdzie mogę znaleźć ogólny przegląd biblioteki?

EDYTOWAĆ Wydaje się, że większość odpowiedzi jest ukierunkowana na naukę podstawowych elementów programowania funkcjonalnego, takich jak monady, więc postaram się być bardziej precyzyjny. Mam podstawową wiedzę o Haskell i tle matematyki, więc mój problem nie dotyczy teorii kategorii ani podstawowego programowania funkcjonalnego.

Moim problemem jest to, że Scalaz to ogromna biblioteka. Nie wiem, gdzie znaleźć, jakie metody są dostępne lub użyteczne dla różnych typów danych. To, czego naprawdę potrzebuję, to mapa, która na przykład powie mi, że kiedy chcę iterować nad zasobami, które należy usunąć, mogę rozważyć iteracje i jakie operacje mogę z tym zrobić. Bardziej przypomina panoramę funkcjonalności dostępnej w bibliotece.

questionAnswers(4)

yourAnswerToTheQuestion