2

Haskell Wiki でZipperの記事を読んでいますが、次のようにup定義されているメソッドを理解できません。

data Tree a = Fork (Tree a) (Tree a) | Leaf a

data Cxt a = Top | L (Cxt a) (Tree a) | R (Tree a) (Cxt a)

type Loc a = (Tree a, Cxt a)

up :: Loc a -> Loc a
up (t, L c r) = (Fork t r, c)
up (t, R l c) = (Fork l t, c)

パターンup (t, L c r)ではt、サブツリーにフォーカスcがありますか、現在のフォーカスに穴があるcコンテキストですか? ピントも上がればいいじゃないですか。

4

1 に答える 1