Clear all warnings
This commit is contained in:
@@ -40,6 +40,8 @@ Applies a function to the root of a tree.
|
||||
applyToRoot :: (a -> a) -> Tree a -> Tree a
|
||||
applyToRoot f (Node t ts) = Node (f t) ts
|
||||
|
||||
-- | Consider defining this using generalised recursion patterns
|
||||
treeSize :: Tree a -> Int
|
||||
treeSize = length . flatten
|
||||
|
||||
{- |
|
||||
@@ -72,7 +74,7 @@ treeChildNums :: Tree a -> Tree Int
|
||||
treeChildNums = setRoot 0
|
||||
where
|
||||
setRoot :: Int -> Tree a -> Tree Int
|
||||
setRoot i (Node x xs) = Node i (zipWith setRoot [0..] xs)
|
||||
setRoot i (Node _ xs) = Node i (zipWith setRoot [0..] xs)
|
||||
|
||||
{- |
|
||||
Makes each node into its path, i.e. the list of indices that,
|
||||
@@ -109,7 +111,7 @@ Find the depth of a tree along the trunk.
|
||||
-}
|
||||
trunkDepth :: Tree a -> Int
|
||||
trunkDepth (Node _ []) = 0
|
||||
trunkDepth (Node _ (x:xs)) = trunkDepth x + 1
|
||||
trunkDepth (Node _ (x:_)) = trunkDepth x + 1
|
||||
|
||||
{- |
|
||||
Split a tree at a given point along its trunk.
|
||||
@@ -121,6 +123,7 @@ splitTrunkAt 0 (Node x xs) = (Node x [],xs)
|
||||
splitTrunkAt i (Node y (x:xs)) =
|
||||
let (t, ts) = splitTrunkAt (i-1) x
|
||||
in (Node y (t : xs) , ts)
|
||||
splitTrunkAt _ (Node _ []) = error "Trying to split to short a trunk"
|
||||
|
||||
{- |
|
||||
Split a tree at a random point along its trunk.
|
||||
|
||||
Reference in New Issue
Block a user