使用 mapN 应用值
Use mapN to apply values
我有以下代码片段:
final case class Configuration(env: Env, user: String, password: String, address: String)
trait DbSetup[F[_]] {
type EnvT[A] = OptionT[F, A]
def system: EnvT[Env]
def user: EnvT[String]
def password: EnvT[String]
def address: EnvT[String]
}
object DbSetup {
def get[F[_] : Monad](s: DbSetup[F]): s.EnvT[Configuration] = ???
}
如何使用Applicative函数mapN
执行get
函数得到Configuration
填充?
尝试
import cats.syntax.apply._
def get[F[_] : Monad](s: DbSetup[F]): s.EnvT[Configuration] =
(s.system, s.user, s.password, s.address).mapN(Configuration)
我可以推荐你阅读Herding Cats or Scala with Cats吗?
我有以下代码片段:
final case class Configuration(env: Env, user: String, password: String, address: String)
trait DbSetup[F[_]] {
type EnvT[A] = OptionT[F, A]
def system: EnvT[Env]
def user: EnvT[String]
def password: EnvT[String]
def address: EnvT[String]
}
object DbSetup {
def get[F[_] : Monad](s: DbSetup[F]): s.EnvT[Configuration] = ???
}
如何使用Applicative函数mapN
执行get
函数得到Configuration
填充?
尝试
import cats.syntax.apply._
def get[F[_] : Monad](s: DbSetup[F]): s.EnvT[Configuration] =
(s.system, s.user, s.password, s.address).mapN(Configuration)
我可以推荐你阅读Herding Cats or Scala with Cats吗?