Advertisement
Guest User

SO/a/15327596 builds a degenerate, linear tree

a guest
Nov 11th, 2018
244
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. https://stackoverflow.com/a/15327596/849891 builds a degenerate, linear tree.
  2.  
  3.     mergeAll :: Ord a => [[a]] -> [a]
  4.     mergeAll [] = []
  5.     mergeAll x = head $ mp x
  6.    
  7.     mp :: Ord a => [[a]] -> [[a]]   -- "mergePairs"
  8.     mp [] = []
  9.     mp [x] = [x]
  10.     mp (x:y:tail) = mp (x+y : mp tail)
  11.  
  12.     mp [x,y] = mp (x+y : mp []) = mp [x+y] = [x+y]
  13.     mp [z,w,x,y] = mp (z+w : mp [x,y]) = mp [z+w,x+y] = [(z+w)+(x+y)]
  14.     mp [r,s,z,w,x,y] = mp (r+s : [(z+w)+(x+y)]) = [(r+s)+((z+w)+(x+y))]
  15.     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)))]
  16.     mp [c,d,t,q,r,s,z,w,x,y] = [(c+d)+((t+q)+((r+s)+((z+w)+(x+y))))]
  17.     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)))))]
  18.  
  19.     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