重複の可能性:
良い scalaz の紹介
私は Scalaz についてもっと学びたいと思っています。おそらく Scalaz7 を使用して、脳が安定していると宣言されたら、脳の再配線を避けたいと思っています。私の問題は、Scalaz に多くの機能が含まれていることです。そのほとんどは他の部分から独立していることを意図していますが、Scalaz が提供するグローバルな機能と、それがどのように構成されているかを俯瞰したいと思います。私の知る限り、Scalaz は、とりわけ、
Functor
、Applicative
およびMonad
特性、Validation
のような新しいモナド- モナド変換子 (
OptionT
,EitherT
....) Itereatee
sLens
エスZipper
s
これに加えて、多くの暗黙的な変換some
と、標準ライブラリと重複するが型に関してより適切に動作するような新しいコンストラクターがあります。
:type Some(3) // Some[Int]
:type some(3) // Option[Int]
私はこれらの構造のほとんどについて基本的な理解を持っていますが、どの概念についても流暢ではありません。
ライブラリを学習する順序、モジュール間に存在する論理的な依存関係について何か提案はありますか? より一般的には、ライブラリの高レベルの概要はどこにありますか?
編集ほとんどの回答は、モナドなどの関数型プログラミングの基本コンポーネントの学習に向けられているようです。そのため、より正確にしようと思います。私は Haskell の基本的な知識と数学者のバックグラウンドを持っているので、私の問題は圏論や基本的な関数型プログラミングとは関係ありません。
私の問題は、Scalaz が巨大なライブラリであることです。どこで何を見つければよいのか、さまざまなデータ型でどのメソッドが利用可能または有用なのかわかりません。私が本当に必要としているのは、たとえば、破棄する必要のあるリソースを繰り返し処理したい場合、反復対象とそれを使用して実行できる操作の種類を検討する必要があることを教えてくれるマップです。ライブラリで利用可能な機能のパノラマのようなものです。