String または [Int] のいずれかの入力として 2 種類の変数を取得できる関数を作成する必要があります。
これが私の作品です。リストのリストを引数として取り、すべてのリストの長さが同じかどうかをチェックします。はいの場合、(m,n) が表示されます。ここで、m はリストに含まれるリストの数、n はすべてのリストの長さです (これは同じです)。
size :: [[Int]] -> (Int,Int)
size a = size2 a m n
where
m = 0
n = length (head a)
size2 :: [[Int]] -> Int -> Int -> (Int,Int)
size2 [] m n = (m,n)
size2 a m n
| n == length (head a) = size2 (tail a) (m+1) n
| otherwise = (0,0)
[[Int]] で動作するようにしましたが、[String] 入力でも動作しないに違いありません。