Giả sử tôi có một vài functors lồng nhau, ví dụ: List[Option[Int]]
và cần gọi số map
của hình bên trong nhất.Làm thế nào để đơn giản hóa các cuộc gọi bản đồ lồng nhau?
Bây giờ tôi đang sử dụng lồng nhau maps
:
scala> val opts: List[Option[Int]] = List(Some(0), Some(1))
opts: List[Option[Int]] = List(Some(0), Some(1))
scala> opts.map(o => o.map(_ + 1))
res0: List[Option[Int]] = List(Some(1), Some(2))
gì nếu tôi có 3 cấp độ làm tổ, ví dụ?
Có cách thay thế đơn giản nào để lồng vào nhau maps
không?
Tôi không giả định rằng functors của tôi là monads vì vậy không thể sử dụng 'flatten'. – Michael