【发布时间】:2017-03-31 05:21:12
【问题描述】:
有了 Cats,我可以编写这个简单的程序
def foo(x: Int) = x + 1
val bar = Functor[Future](foo)
现在我可以做一个bar(future(1)) 并得到一个Future.Success(2) 结果。很好。
但假设我的功能是
def foo[T](x: T)(implicit m: Manifest[T]) : String = {...}
现在如果我尝试解除这个功能
def futureFoo = Functor[Future].lift(foo)
我收到编译器错误No Manifest available for T.
那么如何解除这个功能呢?
我搜索并找到了这个帖子(这是给scalaz的)
Lifting a function which takes implicit parameter using functor (Scalaz7)
但我仍然无法创建任何对我有用的东西。我试过了
val futureFoo = Functor[T].lift2(foo[T] _)
但这不会编译
【问题讨论】:
标签: scala scala-cats