diff options
author | Eduardo Julian | 2018-04-05 07:48:25 -0400 |
---|---|---|
committer | Eduardo Julian | 2018-04-05 07:48:25 -0400 |
commit | 435771d3c4d4ffa791805e7006ee3bde488a4090 (patch) | |
tree | 693b9e2a6d8c6ddf4e439336e5bfcd665c9955cd /stdlib/source/lux/data/coll/tree/zipper.lux | |
parent | 3de94c8a341ef3f19fd75eeeb98e5333d2fe89d0 (diff) |
- Improved the syntax for the "lux.function" macro.
Diffstat (limited to 'stdlib/source/lux/data/coll/tree/zipper.lux')
-rw-r--r-- | stdlib/source/lux/data/coll/tree/zipper.lux | 41 |
1 files changed, 30 insertions, 11 deletions
diff --git a/stdlib/source/lux/data/coll/tree/zipper.lux b/stdlib/source/lux/data/coll/tree/zipper.lux index 421c10fe9..845dd4c4c 100644 --- a/stdlib/source/lux/data/coll/tree/zipper.lux +++ b/stdlib/source/lux/data/coll/tree/zipper.lux @@ -82,12 +82,19 @@ (#.Some parent) (|> parent + ## TODO: Remove once new-luxc becomes the standard compiler. (update@ #node (: (-> (Tree ($ +0)) (Tree ($ +0))) - (function [node] + (function (_ node) (set@ #rose.children (L/compose (list.reverse (get@ #lefts zipper)) (#.Cons (get@ #node zipper) (get@ #rights zipper))) - node))))))) + node)))) + ## (update@ #node (function (_ node) + ## (set@ #rose.children (L/compose (list.reverse (get@ #lefts zipper)) + ## (#.Cons (get@ #node zipper) + ## (get@ #rights zipper))) + ## node))) + ))) (def: #export (root zipper) (All [a] (-> (Zipper a) (Zipper a))) @@ -105,14 +112,14 @@ (#.Cons next side') (|> zipper - (update@ <op-side> (function [op-side] + (update@ <op-side> (function (_ op-side) (#.Cons (get@ #node zipper) op-side))) (set@ <side> side') (set@ #node next)))) (def: #export (<all-name> zipper) (All [a] (-> (Zipper a) (Zipper a))) - (L/fold (function [_] <one-name>) zipper (get@ <side> zipper)))] + (L/fold (function (_ _) <one-name>) zipper (get@ <side> zipper)))] [right rightmost #rights #lefts] [left leftmost #lefts #rights] @@ -143,19 +150,26 @@ (def: #export (prepend-child value zipper) (All [a] (-> a (Zipper a) (Zipper a))) (update@ [#node #rose.children] - (function [children] + (function (_ children) + ## TODO: Remove once new-luxc becomes the standard compiler. (list& (: (Tree ($ +0)) (rose.tree [value {}])) - children)) + children) + ## (list& (rose.tree [value {}]) + ## children) + ) zipper)) (def: #export (append-child value zipper) (All [a] (-> a (Zipper a) (Zipper a))) (update@ [#node #rose.children] - (function [children] + (function (_ children) (L/compose children + ## TODO: Remove once new-luxc becomes the standard compiler. (list (: (Tree ($ +0)) - (rose.tree [value {}]))))) + (rose.tree [value {}]))) + ## (list (rose.tree [value {}])) + )) zipper)) (def: #export (remove zipper) @@ -184,10 +198,14 @@ _ (#.Some (|> zipper - (update@ <side> (function [side] + (update@ <side> (function (_ side) + ## TODO: Remove once new-luxc becomes the standard compiler. (#.Cons (: (Tree ($ +0)) (rose.tree [value {}])) - side)))))))] + side) + ## (#.Cons (rose.tree [value {}]) + ## side) + ))))))] [insert-left #lefts] [insert-right #rights] @@ -200,13 +218,14 @@ #rights (|> fa (get@ #rights) (L/map (T/map f))) #node (T/map f (get@ #node fa))})) +## TODO: Add again once new-luxc becomes the standard compiler. ## (struct: #export _ (CoMonad Zipper) ## (def: functor Functor<Zipper>) ## (def: unwrap (get@ [#node #rose.value])) ## (def: (split wa) -## (let [tree-splitter (function tree-splitter [tree] +## (let [tree-splitter (function (tree-splitter tree) ## {#rose.value (zip tree) ## #rose.children (L/map tree-splitter ## (get@ #rose.children tree))})] |