7
렌즈의 방법을보다 간단하게 다루는 훌륭한 자습서와 게시물이 많이 있습니다. Cleaner way to update nested structures; 누구든지이 세 가지 다른 방법에 대한 예제 사용을 제공 할 수 있습니까? 감사.예제에서는 scalaz.Lens의 modf, modp 및 xmap을 사용합니다.
렌즈의 방법을보다 간단하게 다루는 훌륭한 자습서와 게시물이 많이 있습니다. Cleaner way to update nested structures; 누구든지이 세 가지 다른 방법에 대한 예제 사용을 제공 할 수 있습니까? 감사.예제에서는 scalaz.Lens의 modf, modp 및 xmap을 사용합니다.
불행히도 Scalaz7 렌즈 예제는 WIP입니다. 이 질문에 the Scalaz Google Group을 요청해야합니다. 물어보기 전에이 예제를 여기에 시도해보고 Emmett의 비디오를보십시오. Using lenses with Scalaz 7
다시 소스 코드를 볼
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 _)
}
죄송합니다. 나는 누구에게 물어보기 전에 누구에게 물어야하는지, 그리고 무엇을 알아야 하는지를 지적 할 수 있습니다.
참고로 Raahul에게 감사드립니다. – Joffer