我正在尝试定义这个同时使用无形和Scalaz的方法,但它正在从地图的scalaz中获取一个隐含的东西,而不是某些东西(也许是一个“隐式宏”?我甚至都不知道那是什么)来自无形状:
import scalaz._
import Scalaz._
import Category._
import shapeless.{Lens => _, _}
import poly._
import syntax.std.tuple._
import language.{higherKinds,implicitConversions}
/** Partitions an object which is isomorphic to a Seq, into two objects of the same type. */
def partitionIso[A,B](p: B => Boolean)(a: A)(implicit iso: A <=> Seq[B]): (A, A) =
iso.to(a).partition(p).map(iso.from(_))
Eclipse说:
Multiple markers at this line
- Implicit arguments found: =>
( scalaz.Functor.Tuple2Functor )
- type mismatch; found : (Seq[B], A) required: (A, A)
- Implicit conversions found: => Tuple2MA()
如何更改此代码以使其编译?
答案 0 :(得分:2)
当有人还在学习Scala的时候,我从未遇到过这个问题(虽然这是一个可怕的事情implicit
没有人谈论过,因为它们看起来很酷),但我认为你有一些选项:
implicit
来禁用您不想要的_
(仅当implicit
不时才有效特质),如this。implicit
方法覆盖implicit
。