我想要一个函数,它接受两个任意类型的列表并返回一个(即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
,而且是错误的。有什么建议么?