Either と Validation と Scalaz

3
ねこはる @halcat0x15a

ioのエラーをValidationで持っていいものか。

2012-02-18 18:28:07
ねこはる @halcat0x15a

そもそもValidationを使うべきか否か・・・・

2012-02-18 18:32:05
Toshiyuki Takahashi @tototoshi

EitherとOptionが一緒に使うときってどうするのが良いんだろう。toRightとかtoOptionとか使うのなんかなあって気分

2012-02-18 19:04:49
病気の美少女 @lyrical_logical

そういえば scalaz.Iteratee の fold て Either にもあるし、そんな変でもないか

2012-02-18 19:12:03
ねこはる @halcat0x15a

@tototoshi 通信エラーなんかをValidationで持つって違和感を感じません? EitherはEitherでもにょもにょします・・・・

2012-02-18 19:26:55
ねこはる @halcat0x15a

Validationはパースエラー、バリデーションエラーしか持てないような洗脳されてる。

2012-02-18 19:29:11
ねこはる @halcat0x15a

ここでIOモナドが・・・

2012-02-18 19:29:57
ねこはる @halcat0x15a

多分ユーザー的に嬉しくない。

2012-02-18 19:30:22
ねこはる @halcat0x15a

@tototoshi Scalaz7にはEitherT, OptionTというのがありまして・・・・

2012-02-18 19:31:19
ねこはる @halcat0x15a

はすけるを参考にしてみよう。

2012-02-18 19:35:16
病気の美少女 @lyrical_logical

@halcat0x15a @tototoshi Validation で持っていいと思うのですが。

2012-02-18 19:46:32
ねこはる @halcat0x15a

どこにもないと思ったらscalaz7ブランチか。

2012-02-18 19:46:56
病気の美少女 @lyrical_logical

ハスケルの Either は right を成功 left を失敗として扱えるようなモナドのインスタンスがあるけどスカラは単なる sum type だし、エラーを扱うなら迷わず Validation でいい気がする

2012-02-18 19:49:19
Toshiyuki Takahashi @tototoshi

scalazのeitherもなんかあれだしね...なんかあれってなにがあれだったか忘れたけど

2012-02-18 19:53:44
病気の美少女 @lyrical_logical

@halcat0x15a ボクの中ではスカラの Either とハスケルの Either は対応してなくて、してるのは Validation なので名前違うけどまあエラーを伴うコンテキストを表現したいなら Validation でいいじゃん的な

2012-02-18 19:54:28
ねこはる @halcat0x15a

とりあえずValidationで書いてみようかな。

2012-02-18 19:56:54
病気の美少女 @lyrical_logical

ハスケルの Either とスカラの Either 実はべつものっていうのボクも最近まで知らなかったけどなんてことしやがる感ある。まあハスケル知らなければそんな気持ちにならなかっただろうしハスケル使ってた人間が悪い

2012-02-18 19:58:08
病気の美少女 @lyrical_logical

うわ、scalaz さん master に Validation のモナド変換子ないじゃん。

2012-02-18 20:03:07
病気の美少女 @lyrical_logical

scalaz7 にはあるみたいなので良かったですね(使わないけど)

2012-02-18 20:05:44
Toshiyuki Takahashi @tototoshi

scalazのValidationのとこのコメントに、エラーをaccumulateしないならEither使えば?的なこと書いてあるなあ。 https://t.co/4y1jXtNi

2012-02-18 20:12:07
Kenji Yoshida @xuwei_k

@lyrical_logical @halcat0x15a @tototoshi あーでもそれって、Scalaz使うと、Eitherが「right を成功 left を失敗として扱えるようなモナドのインスタンス」になってるという、とてもややこしいことになっていたような

2012-02-18 20:22:37