示例使用scalaz.Lens的modf,modp和xmap

Jof*_*fer 7 haskell functional-programming scala functor scalaz

有许多很棒的教程和帖子,其中包含更简单的Lens方法,例如Cleaner更新嵌套结构的方法 ; 任何人都可以提供这三种其他方法的示例用途吗?谢谢.

Raa*_*mar 1

不幸的是,Scalaz7 镜头示例尚未完成。您需要向Scalaz Google Group询问此问题。在您提问之前,请尝试此处的这些示例并观看 Emmett 的视频。

再看一下源代码。从中你能猜出什么?

 def xmapbA[X, A >: A2 <: A1](b: Bijection[A, X]): LensFamily[X, X, B1, B2] =
    xmapA(b to _)(b from _)

  def xmapB[X1, X2](f: B1 => X1)(g: X2 => B2): LensFamily[A1, A2, X1, X2] =
    lensFamily(a => run(a).xmap(f)(g))

  def xmapbB[X, B >: B1 <: B2](b: Bijection[B, X]): LensFamily[A1, A2, X, X] =
    xmapB(b to _)(b from _)


  /** Modify the value viewed through the lens, returning a functor `X` full of results. */
  def modf[X[+_]](f: B1 => X[B2], a: A1)(implicit XF: Functor[X]): X[A2] = {
    val c = run(a)
    XF.map(f(c.pos))(c put _)
  }
Run Code Online (Sandbox Code Playgroud)

抱歉,提供的帮助微乎其微。我可以指出向谁询问以及在询问之前您需要了解什么。