[Haskell-cafe] Weaving fun

Mark T.B. Carroll mark at ixod.org
Tue Apr 10 21:27:32 EDT 2007


"Bas van Dijk" <v.dijk.bas at gmail.com> writes:

>   weave [[1,1,1], [2,2,2], [3,3]] ==> [1,2,3,1,2,3,1,2]
>   weave [[1,1,1], [2,2], [3,3,3]] ==> [1,2,3,1,2,3,1]
>
> Note that 'weave' stops when a list is empty.

My naive implementation is,

weave [] = []
weave ([]:_) = []
weave (x:xs) = head x : weave (xs ++ [tail x])

It's at least brief!

-- Mark



More information about the Haskell-Cafe mailing list