Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- transpose:: [[a]]->[[a]]
- transpose ([]:_) = []
- transpose x = (map head x) : transpose (map tail x)
- transpose [[1,2,3],[4,5,6],[7,8,9]]
- [[1,4,7],[2,5,8],[3,6,9]]
- (map head x)
- transpose [[1,2,3],[4,5,6],[7,8,9]]
- <=>
- (map head [[1,2,3],[4,5,6],[7,8,9]]) : (transpose (map tail [[1,2,3],[4,5,6],[7,8,9]]))
- <=>
- [1,4,7] : (transpose [[2,3],[5,6],[8,9]])
- <=>
- [1,4,7] : (map head [[2,3],[5,6],[8,9]]) : (transpose (map tail [[2,3],[5,6],[8,9]]))
- <=>
- [1,4,7] : [2,5,8] : (transpose [[3],[6],[9]])
- <=>
- [1,4,7] : [2,5,8] : (map head [[3],[6],[9]]) : (transpose (map tail [[3],[6],[9]]))
- <=>
- [1,4,7] : [2,5,8] : [3, 6, 9] : (transpose [[], [], []])
- <=>
- [1,4,7] : [2,5,8] : [3, 6, 9] : [] -- because transpose ([]:_) = []
- <=>
- [[1,4,7],[2,5,8],[3,6,9]]
- (map head x)
- (map head x) : transpose (map tail x)
- [x,y,z,...] : [[a,b,...],[d,e,...],...] = [[x,y,z,...], [a,b,...],[d,e,...],...]
- x = [[1,2,3],[4,5,6],[7,8,9]]
- map head x = [1,4,7]
- map tail x = [[2,3],[5,6],[8,9]]
- transpose (map tail x) = [[2,5,8],[3,6,9]]
- map head x : transpose (map tail x) = [1,4,7] : [[2,5,8],[3,6,9]]
- = [[1,4,7] , [2,5,8],[3,6,9]]
- map
- *Main> map head [1,2,3]
- *Main> map head [[1,2,3]]
- [1]
- *Main> map head [[1,2,3]]
- [1]
- *Main> map head [[1,2,3],[4,5,6]]
- [1,4]
- *Main> map tail [[1,2,3],[4,5,6]]
- [[2,3],[5,6]]
- map head xxs
- map (xs -> head xs) xxs
- map head [[1,2,3],[4,5,6],[7,8,9]]
- -> map (xs -> head xs) [[1,2,3],[4,5,6],[7,8,9]]
- -> [head [1,2,3], head [4,5,6], head [7,8,9]]
- -> [1,4,7]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement