Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- interleave :: [[a]] -> [[a]]
- interleave lists = foldl (\l x -> l >>= (interleave' x)) [[]] lists
- where interleave' :: [a] -> [a] -> [[a]]
- interleave' l1 [] = [l1]
- interleave' [] l2 = [l2]
- 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