I'm trying to write a haskell function that takes in two lists of integers and generates a list with elements that have been taken alternatingly from the two lists.
I have the function:
blend xs ys
An example:
blend [1,2,3] [4,5,6]
should return
[1,4,2,5,3,6]
My logic is to zip the two lists together, generating the pairs of alternate elements, then somehow remove them from their tuples.
It's removing them from their tuples that I can't figure out how to implement.
How about exchanging the arguments during recursion-descend?
blend (x:xs) ys = x:(blend ys xs)
blend _ _ = []
You can even generalise this approach for any number of lists (I'll leave this to you) or take the remaining elements of a list if the other is empty:
blend _ ys = ys