Scalaz镜头组成
发布时间:2020-12-16 19:07:09 所属栏目:安全 来源:网络整理
导读:这里真的很简单的问题看完镜头之后, http://www.youtube.com/watch?v=efv0SQNde5Q 我以为我可以尝试一下这个简单的例子: import scalaz.Lens._fst.andThen(snd).set(((1,2),3),9) 其次是这个错误 error: type mismatch; found : scalaz.Lens[(Nothing,Nothi
这里真的很简单的问题看完镜头之后,
http://www.youtube.com/watch?v=efv0SQNde5Q 我以为我可以尝试一下这个简单的例子: import scalaz.Lens._ fst.andThen(snd).set(((1,2),3),9) 其次是这个错误 error: type mismatch; found : scalaz.Lens[(Nothing,Nothing),Nothing] required: scalaz.Lens[(Nothing,C] Note: Nothing <: C,but class Lens is invariant in type B. You may wish to define B as +B instead. (SLS 4.5) fst.andThen(snd).set(((1,3)) ^ 关于如何使这项工作有任何想法? 解决方法
你将需要帮助编译器一点点.以下任何一个都可以:
(fst andThen snd[Int,Int]).set(((1,9) 要么: (fst[(Int,Int),Int] andThen snd).set(((1,9) 我的猜测是,爱德华·凯特特(Edward Kmett)在谈话中掩盖了这个问题,因为它与他的主题没有真正的关联 – 它只是斯卡拉类型推理系统(烦人的)怪癖之一.例如,在Haskell中,以下内容将会很好: setL (sndLens . fstLens) 9 ((1,3) 有关Scala中类型推断的限制的更多信息,您可以阅读答案here. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |