任意のタイプの 2 つのリストを取り、1 つを返す関数 (つまりf:: [[a]] -> [[a]] -> [[a]]
) が必要です。基本的に、2 つの入力リストの「連結」も生成します。
例えば
> 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
間違っています。助言がありますか?