Scala の Either についての考察

最近 この あたり に書いてあるような、(for式での) Either の chain の やり方覚えて慣れてきたと思ったら、なんだか微妙に使いづらくて、色々疑問が湧いてきて、とくに結論はでていないんですが、現在の考えをメモ。Either自体よくわかってない人はこちらがオススメ


ちなみに(このblog書いている時点のversionで)


それと

というのは、 Scalaz の Validation をつかって chain していった際に fail の場合の値を NonEmptyList として accumulate することができる*1ということを知った際の反応です。
error 情報を accumulate して使うとなると、Either と Validation って違うものなのかなー、でも Validation のなかに色々メソッドあるし

  • error起きた時点でその後の処理しない
  • すべて実行してみて、すべての error の情報 accumulate する

とか使い分けられるのかなぁーとか、その辺の理解が曖昧(・ω・`)


Validation *2 については これ がわかりやすかった。なんだかDropbox上に置いてあるせいか、検索引っかかりにくい気がするが、Scalaz作者の人が書いてるしとても良質な資料な気がす

そーいえば以前にも、ちょっとだけEitherについてこんな議論(?) Scalaでの例外とEither あったなぁ

*1:というかそれがやりやすいようになっているというか推奨されている?

*2:と、そしてそれってつまり Applicative Fanctor なんだぜっ!