Объединение списков в Haskell

Мне нужна функция, которая принимает два списка любого типа и возвращает один (например, f:: [[a]] -> [[a]] -> [[a]]). По сути, также создайте «конкатенацию» двух входных списков.

напр.

> f [[1,2,3], [123]] [[4,5,6], [3,7]]
[[1,2,3,4,5,6], [1,2,3,3,7], [123,4,5,6], [123,3,7]]

В настоящее время я зашел так далеко:

f _ [] = []
f [] _ = []
f (xs:xss) (ys:yss) = ((xs ++ ys) : [m | m <- f [xs] yss])

Но это не принимает во внимание xssи неверно. Есть предложения?

5
задан Will Ness 24 February 2013 в 10:52
поделиться