RosettaCodeData/Task/Doubly-linked-list-Element-insertion/Haskell/doubly-linked-list-element-insertion-1.hs
Ingy döt Net 764da6cbbb CDE
2013-04-10 16:57:12 -07:00

7 lines
304 B
Haskell

insert _ Leaf = Leaf
insert nv l@(Node pl v r) = (\(Node c _ _) -> c) new
where new = updateLeft left . updateRight right $ Node l nv r
left = Node pl v new
right = case r of
Leaf -> Leaf
Node _ v r -> Node new v r