RosettaCodeData/Task/Doubly-linked-list-Element-insertion/Haskell/doubly-linked-list-element-insertion-1.hs
2023-07-01 13:44:08 -04: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