1 trizip: [a]-> [B]-> [c]-> [(a, B, c)] 2 trizip a B c 3 | null A = [] 4 | null B = [] 5 | null c = [] 6 trizip (X: XS) (Y: ys) (Z: ZS) = (++) [(x, y, z)] (trizip Xs ys ZS)
[Email protected] ~ /Haskell $ ghcighci, version 7.6.3: http://www.haskell.org/ghc :? For helploading package ghc-prim... linking... done. loading package integer-GMP... linking... done. loading Package base... linking... done. prelude>: l trizip. HS [1 of 1] compiling main (trizip. HS, interpreted) OK, modules loaded: Main. * main> trizip [1 .. 100] ['A '.. 'Z'] ['A '.. 'Z'] [(1, 'A', 'A'), (2, 'B', 'B'), (3, 'C ', 'C'), (4, 'D', 'D'), (5, 'E', 'E'), (6, 'F ', 'F'), (7, 'G', 'G'), (8, 'h', 'H'), (9, 'I ', 'I'), (10, 'J', 'J'), (11, 'k', 'k'), (12, 'l', 'L '), (13, 'M', 'M'), (14, 'n', 'n'), (15, 'O', 'O'), (16, 'P', 'P'), (17, 'Q', 'q'), (18, 'R', 'R'), (19,'s ', 'S '), (20, 't', 'T'), (21, 'U', 'U'), (22, 'V ', 'V'), (23, 'w', 'w'), (24, 'x', 'x'), (25, 'y ', 'y'), (26, 'z', 'z')] * main> [11] + stopped ghci