Scala関西勉強会で scala.Either
とscalaz.\/
の違いについて話してきました!
connpass.com
この話題、ブログとか漁ってみると3年前あたりに活発に議論されてる話だった...
僕自身for式
の中でパターンマッチさせようとしてハマったものの(僕の検索能力の低さもあるけど)それを解説している記事にぶつかるまで時間がかかってしまったので、これについて解説する記事が一つでも増えると良いなーと思って発表しました。
考え事
\/
の単位元も定義されてる\/-(Monoid[B].zero)
https://github.com/scalaz/scalaz/blob/series/7.3.x/core/src/main/scala/scalaz/Either.scala#L411-L418
-\/(Monoid[A].zero)
じゃないのかーって思ったけど、+++
の実装を見てみると確かに\/-(Monoid[B].zero)
が\/
のappend
についての単位元になってるなぁ@@
https://github.com/scalaz/scalaz/blob/series/7.3.x/core/src/main/scala/scalaz/Either.scala#L230-L238
今回の勉強会、バリュエーション豊かで基礎から応用まで幅広い内容のセッションがあってすごく良かった!
会場提供のエムオーテックス株式会社様、主催の@aa7thさん、@ryu1_okdさん、ありがとうございました!
参考
- HaskellのdoとScalaのfor式とEitherとMonadPlus - scalaとか・・・
- Scalaz勉強会 主要な型クラスの紹介 · GitHub
- 独習 Scalaz — \/
- GitHub - scalaz/scalaz: An extension to the core Scala library for functional programming.
余談
発表中両手あげてバンザイして全身で\/を表現したりしてた
両手上げてバンザイ! \/ #scala_kb
— SAMMY(きの子) (@aa7th) July 10, 2016
今日の懇親会情報です pic.twitter.com/8lE11QuO6S
— tanishiking (@tanishiking) July 10, 2016
また参加します!