Khi tôi nhìn scalaz.effect.IO
mã nguồn, tôi nhận thấy rằng nó có một phương pháp apply
với chữ ký sau đây:Tháp [A] và Ngà voi ở Scalaz là gì?
sealed trait IO[A] {
def apply(rw: Tower[IvoryTower]): Trampoline[(Tower[IvoryTower], A)]
}
Tower[A]
và IvoryTower
được định nghĩa là:
case class Tower[A]()
sealed trait IvoryTower
Có một ví dụ của Tower
:
object IvoryTower extends IvoryTowers
trait IvoryTowers {
val ivoryTower = Tower[IvoryTower]()
}
Mục đích của điều này là gì e lớp học? Tại sao IO.apply
chấp nhận một đối số thuộc loại Tower[IvoryTower]
?
Tôi cũng muốn Scalaz được ghi nhận. – rightfold