Den Weg durch Scalaz finden [duplizieren]

Mögliche Duplikate:
Gute Einführung in Scalaz

Ich möchte mehr über Scalaz erfahren und möglicherweise Scalaz7 verwenden, um zu vermeiden, dass mein Gehirn nach der Feststellung der Stabilität neu verkabelt wird. Mein Problem ist, dass Scalaz viele Funktionen enthält. Während das meiste davon unabhängig von anderen Teilen sein soll, möchte ich einen Überblick über die globale Funktionalität von Scalaz und deren Organisation haben. Scalaz bietet meines Wissens unter anderem

Functor, Applicative undMonad Züge,neue Monaden wieValidation (edit: stellt sich heraus, dass es nur ein Antrag ist)Monadentransformatoren (OptionT, EitherT....)ItereateesLensesZippers

Hinzu kommen viele implizite Konvertierungen und neue Konstruktoren wiesome die sich mit der Standardbibliothek überschneiden, sich jedoch typenbezogen besser verhalten

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

Ich habe ein grundlegendes Verständnis für die meisten dieser Konstruktionen, aber ich bin mit keinem der Konzepte fließend.

Haben Sie Vorschläge, in welcher Reihenfolge Sie die Bibliothek erlernen möchten, welche logischen Abhängigkeiten zwischen den Modulen bestehen? Wo finde ich allgemein einen allgemeinen Überblick über die Bibliothek?

BEARBEITEN Es scheint, dass die meisten Antworten darauf abzielen, die grundlegenden Komponenten der funktionalen Programmierung wie Monaden zu erlernen, daher werde ich versuchen, genauer zu sein. Ich habe Grundkenntnisse in Haskell und einen mathematischen Hintergrund, daher hat mein Thema nichts mit Kategorietheorie oder grundlegender funktionaler Programmierung zu tun.

Mein Problem ist, dass Scalaz eine riesige Bibliothek ist. Ich weiß nicht, was wo zu finden ist, welche Methoden für verschiedene Datentypen verfügbar oder nützlich sind. Was ich wirklich brauche, ist eine Karte, die mir beispielsweise sagt, dass ich, wenn ich über Ressourcen iterieren möchte, die entsorgt werden müssen, Iterationen in Betracht ziehen möchte und welche Art von Operationen ich damit ausführen kann. Eher wie ein Panorama der Funktionen, die mit der Bibliothek verfügbar sind.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage