読者です 読者をやめる 読者になる 読者になる

ux00ff

ビールとプログラミングと

Right value is right

Scala

Either型で成功と失敗を表すとき、どうして慣習的にLeftがエラー情報、Rightが正常系なんだろうと不思議だったんですが、Right(右)とRight(正常な)がかかってるっていうことを知って地味に感動しました。ダジャレか。

個人的には最初、先に(左側)正常値を書くのが自然かなと思っていたんですが、コードで戻り値をチェックする際 Right で正常というのは言われてみたら納得感あります。

scala> def div(c:Int ,d:Int) :Either[Exception, Int] = {
     |   d match {
     |     case 0 => Left(new Exception("d is 0"))
     |     case _ => Right(c/d)
     |   }
     | }

scala> div(5, 2)
res34: Either[Exception,Int] = Right(2)

scala> div(10, 0)
res36: Either[Exception,Int] = Left(java.lang.Exception: d is 0)