2

给定一个带有签名的函数:A => F[G[B]]. FG类型有 monads 实例。

是否可以将其转换为带有签名的东西: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]] = ???

更新:我很感激使用猫或 scalaz 的答案。

4

1 回答 1

6

假设我们有一个String=>List[Option[Integer]]. 我们需要生成一个List[Option[String=>Integer]]. 我们应该如何处理这个问题?例如,结果列表应该有多长?None它应该包含多少个s?

显然,这些问题没有答案,这意味着对于任意 monad(或者实际上大多数 monad,因为人们可以对大多数 monad 提出类似问题),所请求的转换不存在。

于 2016-09-15T14:03:09.813 回答