在函数外导入 scalaz monad 语法
import scalaz monad syntax outside of function
有什么方法可以避免在所有函数的主体中导入 monad 语法?这是我坚持写的内容:
object Example {
def doMonadThings[M[_]: Monad, A](ma: M[A]): M[A] = {
val monadSyntax = implicitly[MonadSyntax[M]]
import monadSyntax._
ma.flatMap { x => point(x) }
}
}
scalaz 7.2
编辑:
这是我最终得到的结果:
object Example {
import scalaz.syntax.monad._
def doMonadThings[M[_], A](ma: M[A])(implicit m: Monad[M]): M[A] =
ma.flatMap { x => m.point(x) }
}
尝试
import scalaz.syntax.monad._
def doMonadThings[M[_]: Monad, A](ma: M[A]): M[A] = {
ma.flatMap[A] { x => x.point }
}
有什么方法可以避免在所有函数的主体中导入 monad 语法?这是我坚持写的内容:
object Example {
def doMonadThings[M[_]: Monad, A](ma: M[A]): M[A] = {
val monadSyntax = implicitly[MonadSyntax[M]]
import monadSyntax._
ma.flatMap { x => point(x) }
}
}
scalaz 7.2
编辑:
这是我最终得到的结果:
object Example {
import scalaz.syntax.monad._
def doMonadThings[M[_], A](ma: M[A])(implicit m: Monad[M]): M[A] =
ma.flatMap { x => m.point(x) }
}
尝试
import scalaz.syntax.monad._
def doMonadThings[M[_]: Monad, A](ma: M[A]): M[A] = {
ma.flatMap[A] { x => x.point }
}