Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- https://stackoverflow.com/a/15327596/849891 builds a degenerate, linear tree.
- mergeAll :: Ord a => [[a]] -> [a]
- mergeAll [] = []
- mergeAll x = head $ mp x
- mp :: Ord a => [[a]] -> [[a]] -- "mergePairs"
- mp [] = []
- mp [x] = [x]
- mp (x:y:tail) = mp (x+y : mp tail)
- mp [x,y] = mp (x+y : mp []) = mp [x+y] = [x+y]
- mp [z,w,x,y] = mp (z+w : mp [x,y]) = mp [z+w,x+y] = [(z+w)+(x+y)]
- mp [r,s,z,w,x,y] = mp (r+s : [(z+w)+(x+y)]) = [(r+s)+((z+w)+(x+y))]
- mp [t,q,r,s,z,w,x,y] = mp (t+q : [(r+s)+((z+w)+(x+y))]) = [(t+q)+((r+s)+((z+w)+(x+y)))]
- mp [c,d,t,q,r,s,z,w,x,y] = [(c+d)+((t+q)+((r+s)+((z+w)+(x+y))))]
- mp [a,b,c,d,t,q,r,s,z,w,x,y] = [(a+b)+((c+d)+((t+q)+((r+s)+((z+w)+(x+y)))))]
- mergeAll [a,b,c,d,t,q,r,s,z,w,x,y] = (a+b)+((c+d)+((t+q)+((r+s)+((z+w)+(x+y)))))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement