Ich habe ein Problem mit und lens gestoßen. Betrachten Sie folgendes Beispiel:Zipper: Mapping über den letzten Breadcrumb
{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE TypeOperators #-}
import Control.Lens
import Control.Zipper
data A = AA { _aa :: A }
| AB { _ab :: B }
deriving (Show)
data B = B deriving (Show)
makeLenses ''A
makeLenses ''B
main :: IO()
main = do
let a = AA $ AB $ B
z :: Top :>> A
z = zipper a
zAA :: Maybe (Top :>> A :>> A)
zAA = z & within aa
zAB :: Maybe (Top :>> A :>> B)
zAB = z & within (aa . ab)
return()
Wie Sie sehen können, habe ich von Top :>> A
entweder zu Top :>> A :>> A
und Top :>> A :>> B
bewegen kann.
Mit ab
Linse, wie kann ich von Top :>> A :>> A
bewegen (zAA
) zu Top :>> A :>> B
(zAB
), ohne upward
mit - nur der Abbildung mit Objektiv über letzten Brotkrümel?