aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/library/lux/data/collection/tree/zipper.lux
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib/source/library/lux/data/collection/tree/zipper.lux')
-rw-r--r--stdlib/source/library/lux/data/collection/tree/zipper.lux54
1 files changed, 27 insertions, 27 deletions
diff --git a/stdlib/source/library/lux/data/collection/tree/zipper.lux b/stdlib/source/library/lux/data/collection/tree/zipper.lux
index 7f168c2d3..15265bf94 100644
--- a/stdlib/source/library/lux/data/collection/tree/zipper.lux
+++ b/stdlib/source/library/lux/data/collection/tree/zipper.lux
@@ -19,15 +19,15 @@
(type: (Family Zipper a)
(Record
- {#parent (Zipper a)
+ [#parent (Zipper a)
#lefts (List (Tree a))
- #rights (List (Tree a))}))
+ #rights (List (Tree a))]))
... https://en.wikipedia.org/wiki/Zipper_(data_structure)
(type: .public (Zipper a)
(Record
- {#family (Maybe (Family Zipper a))
- #node (Tree a)}))
+ [#family (Maybe (Family Zipper a))
+ #node (Tree a)]))
(implementation: .public (equivalence super)
(All (_ a)
@@ -46,8 +46,8 @@
(def: .public (zipper tree)
(All (_ a) (-> (Tree a) (Zipper a)))
- {#family #.None
- #node tree})
+ [#family #.None
+ #node tree])
(def: .public tree
(All (_ a) (-> (Zipper a) (Tree a)))
@@ -93,10 +93,10 @@
#.None
(#.Item head tail)
- (#.Some {#family (#.Some {#parent (with@ [#node #//.children] (list) zipper)
+ (#.Some [#family (#.Some [#parent (with@ [#node #//.children] (list) zipper)
#lefts #.End
- #rights tail})
- #node head})))
+ #rights tail])
+ #node head])))
(def: .public (up zipper)
(All (_ a) (-> (Zipper a) (Maybe (Zipper a))))
@@ -124,16 +124,16 @@
(case (value@ <side> family)
(#.Item next side')
(#.Some (for {@.old
- {#family (#.Some (|> family
+ [#family (#.Some (|> family
(with@ <side> side')
(revised@ <op_side> (|>> (#.Item (value@ #node zipper))))))
- #node next}}
+ #node next]}
(let [move (: (All (_ a) (-> (List (Tree a)) (Zipper a) (Family Zipper a) (Family Zipper a)))
(function (_ side' zipper)
(|>> (with@ <side> side')
(revised@ <op_side> (|>> (#.Item (value@ #node zipper)))))))]
- {#family (#.Some (move side' zipper family))
- #node next})))
+ [#family (#.Some (move side' zipper family))
+ #node next])))
#.End
#.None)
@@ -153,18 +153,18 @@
#.None
(#.Item last prevs)
- (#.Some (for {@.old {#family (#.Some (|> family
+ (#.Some (for {@.old [#family (#.Some (|> family
(with@ <side> #.End)
(revised@ <op_side> (|>> (#.Item (value@ #node zipper))
(list\composite prevs)))))
- #node last}}
+ #node last]}
(let [move (: (All (_ a) (-> (List (Tree a)) (Zipper a) (Family Zipper a) (Family Zipper a)))
(function (_ prevs zipper)
(|>> (with@ <side> #.End)
(revised@ <op_side> (|>> (#.Item (value@ #node zipper))
(list\composite prevs))))))]
- {#family (#.Some (move prevs zipper family))
- #node last}))))))]
+ [#family (#.Some (move prevs zipper family))
+ #node last]))))))]
[right rightmost #rights #lefts]
[left leftmost #lefts #rights]
@@ -293,12 +293,12 @@
(Functor Zipper)
(def: (each f (^slots [#family #node]))
- {#family (maybe\each (function (_ (^slots [#parent #lefts #rights]))
- {#parent (each f parent)
+ [#family (maybe\each (function (_ (^slots [#parent #lefts #rights]))
+ [#parent (each f parent)
#lefts (list\each (//\each f) lefts)
- #rights (list\each (//\each f) rights)})
+ #rights (list\each (//\each f) rights)])
family)
- #node (//\each f node)}))
+ #node (//\each f node)]))
(implementation: .public comonad
(CoMonad Zipper)
@@ -310,13 +310,13 @@
(def: (disjoint (^slots [#family #node]))
(let [tree_splitter (: (All (_ a) (-> (Tree a) (Tree (Zipper a))))
(function (tree_splitter tree)
- {#//.value (..zipper tree)
+ [#//.value (..zipper tree)
#//.children (|> tree
(value@ #//.children)
- (list\each tree_splitter))}))]
- {#family (maybe\each (function (_ (^slots [#parent #lefts #rights]))
- {#parent (disjoint parent)
+ (list\each tree_splitter))]))]
+ [#family (maybe\each (function (_ (^slots [#parent #lefts #rights]))
+ [#parent (disjoint parent)
#lefts (list\each tree_splitter lefts)
- #rights (list\each tree_splitter rights)})
+ #rights (list\each tree_splitter rights)])
family)
- #node (tree_splitter node)})))
+ #node (tree_splitter node)])))