我有以下代码片段:
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] = ???
}
Run Code Online (Sandbox Code Playgroud)
如何在函数的实现中使用Applicative函数来填充? mapNgetConfiguration
尝试
import cats.syntax.apply._
def get[F[_] : Monad](s: DbSetup[F]): s.EnvT[Configuration] =
(s.system, s.user, s.password, s.address).mapN(Configuration)
Run Code Online (Sandbox Code Playgroud)
我可以推荐您阅读Herding Cats或Scala with Cats吗?
| 归档时间: |
|
| 查看次数: |
75 次 |
| 最近记录: |