aboutsummaryrefslogtreecommitdiff
path: root/stdlib/source/library/lux/data/collection/tree/zipper.lux
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--stdlib/source/library/lux/data/collection/tree/zipper.lux108
1 files changed, 54 insertions, 54 deletions
diff --git a/stdlib/source/library/lux/data/collection/tree/zipper.lux b/stdlib/source/library/lux/data/collection/tree/zipper.lux
index b6fb27355..6d1709c55 100644
--- a/stdlib/source/library/lux/data/collection/tree/zipper.lux
+++ b/stdlib/source/library/lux/data/collection/tree/zipper.lux
@@ -50,23 +50,23 @@
(def: .public tree
(All [a] (-> (Zipper a) (Tree a)))
- (get@ #node))
+ (value@ #node))
(def: .public value
(All [a] (-> (Zipper a) a))
- (get@ [#node #//.value]))
+ (value@ [#node #//.value]))
(def: .public (set value zipper)
(All [a] (-> a (Zipper a) (Zipper a)))
- (set@ [#node #//.value] value zipper))
+ (with@ [#node #//.value] value zipper))
(def: .public (update transform zipper)
(All [a] (-> (-> a a) (Zipper a) (Zipper a)))
- (update@ [#node #//.value] transform zipper))
+ (revised@ [#node #//.value] transform zipper))
(def: children
(All [a] (-> (Zipper a) (List (Tree a))))
- (get@ [#node #//.children]))
+ (value@ [#node #//.children]))
(def: .public leaf?
(All [a] (-> (Zipper a) Bit))
@@ -78,7 +78,7 @@
(def: .public (start? zipper)
(All [a] (-> (Zipper a) Bit))
- (case (get@ #family zipper)
+ (case (value@ #family zipper)
#.None
true
@@ -92,7 +92,7 @@
#.None
(#.Item head tail)
- (#.Some {#family (#.Some {#parent (set@ [#node #//.children] (list) zipper)
+ (#.Some {#family (#.Some {#parent (with@ [#node #//.children] (list) zipper)
#lefts #.End
#rights tail})
#node head})))
@@ -100,37 +100,37 @@
(def: .public (up zipper)
(All [a] (-> (Zipper a) (Maybe (Zipper a))))
(do maybe.monad
- [family (get@ #family zipper)]
+ [family (value@ #family zipper)]
(in (let [(^slots [#parent #lefts #rights]) family]
(for {@.old
- (update@ #node (: (-> (Tree (:parameter 0))
- (Tree (:parameter 0)))
- (set@ #//.children (list\compose (list.reversed lefts)
- (#.Item (get@ #node zipper)
- rights))))
- parent)}
- (set@ [#node #//.children]
- (list\compose (list.reversed lefts)
- (#.Item (get@ #node zipper)
- rights))
- parent))))))
+ (revised@ #node (: (-> (Tree (:parameter 0))
+ (Tree (:parameter 0)))
+ (with@ #//.children (list\compose (list.reversed lefts)
+ (#.Item (value@ #node zipper)
+ rights))))
+ parent)}
+ (with@ [#node #//.children]
+ (list\compose (list.reversed lefts)
+ (#.Item (value@ #node zipper)
+ rights))
+ parent))))))
(template [<one> <all> <side> <op_side>]
[(def: .public (<one> zipper)
(All [a] (-> (Zipper a) (Maybe (Zipper a))))
- (case (get@ #family zipper)
+ (case (value@ #family zipper)
(#.Some family)
- (case (get@ <side> family)
+ (case (value@ <side> family)
(#.Item next side')
(#.Some (for {@.old
{#family (#.Some (|> family
- (set@ <side> side')
- (update@ <op_side> (|>> (#.Item (get@ #node zipper))))))
+ (with@ <side> side')
+ (revised@ <op_side> (|>> (#.Item (value@ #node zipper))))))
#node next}}
(let [move (: (All [a] (-> (List (Tree a)) (Zipper a) (Family Zipper a) (Family Zipper a)))
(function (_ side' zipper)
- (|>> (set@ <side> side')
- (update@ <op_side> (|>> (#.Item (get@ #node zipper)))))))]
+ (|>> (with@ <side> side')
+ (revised@ <op_side> (|>> (#.Item (value@ #node zipper)))))))]
{#family (#.Some (move side' zipper family))
#node next})))
@@ -142,26 +142,26 @@
(def: .public (<all> zipper)
(All [a] (-> (Zipper a) (Maybe (Zipper a))))
- (case (get@ #family zipper)
+ (case (value@ #family zipper)
#.None
#.None
(#.Some family)
- (case (list.reversed (get@ <side> family))
+ (case (list.reversed (value@ <side> family))
#.End
#.None
(#.Item last prevs)
(#.Some (for {@.old {#family (#.Some (|> family
- (set@ <side> #.End)
- (update@ <op_side> (|>> (#.Item (get@ #node zipper))
- (list\compose prevs)))))
+ (with@ <side> #.End)
+ (revised@ <op_side> (|>> (#.Item (value@ #node zipper))
+ (list\compose prevs)))))
#node last}}
(let [move (: (All [a] (-> (List (Tree a)) (Zipper a) (Family Zipper a) (Family Zipper a)))
(function (_ prevs zipper)
- (|>> (set@ <side> #.End)
- (update@ <op_side> (|>> (#.Item (get@ #node zipper))
- (list\compose prevs))))))]
+ (|>> (with@ <side> #.End)
+ (revised@ <op_side> (|>> (#.Item (value@ #node zipper))
+ (list\compose prevs))))))]
{#family (#.Some (move prevs zipper family))
#node last}))))))]
@@ -245,44 +245,44 @@
(def: .public (interpose value zipper)
(All [a] (-> a (Zipper a) (Zipper a)))
- (update@ [#node #//.children]
- (|>> (//.branch value) list)
- zipper))
+ (revised@ [#node #//.children]
+ (|>> (//.branch value) list)
+ zipper))
(def: .public (adopt value zipper)
(All [a] (-> a (Zipper a) (Zipper a)))
- (update@ [#node #//.children]
- (|>> (#.Item (//.leaf value)))
- zipper))
+ (revised@ [#node #//.children]
+ (|>> (#.Item (//.leaf value)))
+ zipper))
(def: .public (remove zipper)
(All [a] (-> (Zipper a) (Maybe (Zipper a))))
(do maybe.monad
- [family (get@ #family zipper)]
- (case (get@ #lefts family)
+ [family (value@ #family zipper)]
+ (case (value@ #lefts family)
#.End
- (in (set@ [#node #//.children]
- (get@ #rights family)
- (get@ #parent family)))
+ (in (with@ [#node #//.children]
+ (value@ #rights family)
+ (value@ #parent family)))
(#.Item next side)
(in (|> zipper
- (set@ #family (|> family
- (set@ #lefts side)
- #.Some))
- (set@ #node next))))))
+ (with@ #family (|> family
+ (with@ #lefts side)
+ #.Some))
+ (with@ #node next))))))
(template [<name> <side>]
[(def: .public (<name> value zipper)
(All [a] (-> a (Zipper a) (Maybe (Zipper a))))
- (case (get@ #family zipper)
+ (case (value@ #family zipper)
#.None
#.None
(#.Some family)
- (#.Some (set@ #family
- (#.Some (update@ <side> (|>> (#.Item (//.leaf value))) family))
- zipper))))]
+ (#.Some (with@ #family
+ (#.Some (revised@ <side> (|>> (#.Item (//.leaf value))) family))
+ zipper))))]
[insert_left #lefts]
[insert_right #rights]
@@ -304,14 +304,14 @@
(def: &functor ..functor)
- (def: out (get@ [#node #//.value]))
+ (def: out (value@ [#node #//.value]))
(def: (split (^slots [#family #node]))
(let [tree_splitter (: (All [a] (-> (Tree a) (Tree (Zipper a))))
(function (tree_splitter tree)
{#//.value (..zipper tree)
#//.children (|> tree
- (get@ #//.children)
+ (value@ #//.children)
(list\map tree_splitter))}))]
{#family (maybe\map (function (_ (^slots [#parent #lefts #rights]))
{#parent (split parent)