前置き さて、前置きですが、モナドと書きましたが実際にはモナドではなく、モナドのようなものです。 ここで言うモナドというものは、Scalaにおけるfor式で扱えるように、以下のメソッドを実装している型のことを指します。 map/flatMap (つまり、for式で使える型、ifフィルターとyieldではないfor式を除く) あと、記事中の英語は適当です。 はじめに どこかで見た便利な書き方としてfor式のネストした形式を紹介します。(具体的な呼び名は知らない。勝手にネストfor式とか言っておく。) Scalaでのエラーハンドリングはキモくなりがちです。 Either、Try、Optionの入り混ざったものを一つのfor式で扱うのは困難で、 最初にfor式中で使用したモナドに、以降も制限されてしまいます。 scala> { | for { | result <- Future { Try("
