将'A => F [G [B]]'变换为'F [G [A => B]'scala

paw*_*icz 2 functional-programming scala scalaz scala-cats

给定签名功能:A => F[G[B]].有monad实例FG类型.

是否可以将其转换为具有签名的内容:F[G[A=>B]?这种转变有没有通用名称?

换句话说,实施prettify2什么?

def pretiffy(x: String): Future[Option[String]] = Future{if(x == "") None else Some(s">>>$x<<<")}
val pretiffy2: Future[Option[String => String]] = ???
Run Code Online (Sandbox Code Playgroud)

更新:我很欣赏使用猫或scalaz的答案.

n. *_* m. 6

假设我们有一个String=>List[Option[Integer]].我们需要生产一种List[Option[String=>Integer]].我们该如何处理?例如,结果列表应该是多长时间?多少None应该小号包含哪些内容?

显然这些问题没有答案,这意味着任意monad(或者大多数monad,因为人们可以询问关于大多数monad的类似问题)不能存在请求的转换.