答案:時間帯重複チェック (Scala による Option モナド活用編)

お題:時間帯重複チェック - No Programming, No LifeScala で解いてみました。

「失敗するかもしれない処理」を記述する際に、Java では例外を使うと思いますが、Scalaでは、Option を使うという選択肢があります。そこで、今回の答案は、例外ではなくて Option を使ってみました。実引数として与えられた時刻が malformed である場合に、例外の送出をするのではなく、 Option 型の戻り値として None を返すようにしてみました。

なお、この Option はモナドとみなすことができ、for式でひたすら連結することが可能です。こんな感じで、ひたすら for で連結していくのが、私が思うに「scala っぽい答案」なのかなあと思います。

モナドとしての Option を for式 で連結 · GitHub