Skip to content

Instantly share code, notes, and snippets.

case class Address(zip:List[String])
object Addr {
type 住所 = Address
type 郵便番号 = String
def zip:住所 => List[郵便番号] = _.zip
}
List(Address(List("100-0001","100-0002"))) map Addr.zip
//->List[List[Addr.郵便番号]] = List(List(100-0001, 100-0002))
List(Address(List("100-0001","100-0002"))) flatMap Addr.zip
// ->List[Addr.郵便番号] = List(100-0001, 100-0002)
import TrainOps._
import TrainService._
object TrainService {
type ANSWER = Either[String, List[TrainStatus]]
trait Train[A] {
def status(x: A): ANSWER
}
case class TrainStatus(name: String, Status: String)
case class 運行状況(area: String) {