OptionのflatMapとかmapとか

OptionにflatMapがあるのはしってたけど、たぶん使ったことなかった。

params.get("count")

が、Option[String]型としたときに・・・

前↓

    params.get("count") match {
      case Some( count ) if count.matches("""\d+""") => Some( count.toInt )
      case _ => None
    }

後↓

    params.get("count").flatMap{
      case count if count.matches("""\d+""") => Some( count.toInt )
    }

これで使い方あってるのかな?

いや、この場合mapか?

    params.get("count").map{
      case count if count.matches("""\d+""") => count.toInt
    }

っていうか、この内容なら、もっと短く書けるんじゃね?

完全に自分のメモなので、全くまとまってなくてズミバゼン(・ω・`)意味不明だったらスルーしてください。
未だにモナドがちゃんと理解できてねぇ・・・