Advertisement
Guest User

Untitled

a guest
Oct 2nd, 2014
167
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.54 KB | None | 0 0
  1. transpose:: [[a]]->[[a]]
  2. transpose ([]:_) = []
  3. transpose x = (map head x) : transpose (map tail x)
  4.  
  5. transpose [[1,2,3],[4,5,6],[7,8,9]]
  6.  
  7. [[1,4,7],[2,5,8],[3,6,9]]
  8.  
  9. (map head x)
  10.  
  11. transpose [[1,2,3],[4,5,6],[7,8,9]]
  12. <=>
  13. (map head [[1,2,3],[4,5,6],[7,8,9]]) : (transpose (map tail [[1,2,3],[4,5,6],[7,8,9]]))
  14. <=>
  15. [1,4,7] : (transpose [[2,3],[5,6],[8,9]])
  16. <=>
  17. [1,4,7] : (map head [[2,3],[5,6],[8,9]]) : (transpose (map tail [[2,3],[5,6],[8,9]]))
  18. <=>
  19. [1,4,7] : [2,5,8] : (transpose [[3],[6],[9]])
  20. <=>
  21. [1,4,7] : [2,5,8] : (map head [[3],[6],[9]]) : (transpose (map tail [[3],[6],[9]]))
  22. <=>
  23. [1,4,7] : [2,5,8] : [3, 6, 9] : (transpose [[], [], []])
  24. <=>
  25. [1,4,7] : [2,5,8] : [3, 6, 9] : [] -- because transpose ([]:_) = []
  26. <=>
  27. [[1,4,7],[2,5,8],[3,6,9]]
  28.  
  29. (map head x)
  30.  
  31. (map head x) : transpose (map tail x)
  32.  
  33. [x,y,z,...] : [[a,b,...],[d,e,...],...] = [[x,y,z,...], [a,b,...],[d,e,...],...]
  34.  
  35. x = [[1,2,3],[4,5,6],[7,8,9]]
  36.  
  37. map head x = [1,4,7]
  38. map tail x = [[2,3],[5,6],[8,9]]
  39.  
  40. transpose (map tail x) = [[2,5,8],[3,6,9]]
  41.  
  42. map head x : transpose (map tail x) = [1,4,7] : [[2,5,8],[3,6,9]]
  43. = [[1,4,7] , [2,5,8],[3,6,9]]
  44.  
  45. map
  46.  
  47. *Main> map head [1,2,3]
  48.  
  49. *Main> map head [[1,2,3]]
  50. [1]
  51.  
  52. *Main> map head [[1,2,3]]
  53. [1]
  54.  
  55. *Main> map head [[1,2,3],[4,5,6]]
  56. [1,4]
  57.  
  58. *Main> map tail [[1,2,3],[4,5,6]]
  59. [[2,3],[5,6]]
  60.  
  61. map head xxs
  62. map (xs -> head xs) xxs
  63.  
  64. map head [[1,2,3],[4,5,6],[7,8,9]]
  65. -> map (xs -> head xs) [[1,2,3],[4,5,6],[7,8,9]]
  66. -> [head [1,2,3], head [4,5,6], head [7,8,9]]
  67. -> [1,4,7]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement