case class Stooge(name: String)
val moe: Parser[String] = "Moe"
val larry: Parser[String] = "Larry"
val curly: Parser[String] = "Curly"
val shemp: Parser[String] = "Shemp"
val stooge: Parser[Stooge] = (moe | larry | curly | shemp) ^^ { s => Stooge(s) }
Теперь представьте код, который вам нужно было бы написать вместо { s => Stooge(s) }
, если бы вы работали с s: Either[Either[Either[String,String],String],String]
вместо s: String
.