Advertisement
Guest User

Untitled

a guest
Jan 18th, 2017
101
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.31 KB | None | 0 0
  1. interleave :: [[a]] -> [[a]]
  2. interleave lists = foldl (\l x -> l >>= (interleave' x)) [[]] lists
  3. where interleave' :: [a] -> [a] -> [[a]]
  4. interleave' l1 [] = [l1]
  5. interleave' [] l2 = [l2]
  6. interleave' l1@(h1:t1) l2@(h2:t2) = fmap (h1:) (interleave' t1 l2) ++ fmap (h2:) (interleave' l1 t2)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement