Haskellに 2D リストがあり、[[Int]]
2 つのことを確認したい:
- リストの行数が列数と同じかどうか
- 行の要素数が同じかどうか
例えば:
[[1,2,3], [1,55,9]]
列と同じ数の行 (ここでは 2) があり、各行には同じ数の要素、つまり 3 があります。
しかし
[[1,2], [1,55], [4,7]]
行と列の数は等しくありませんが、各行には同じ数の要素、つまり3r 2cがあります。
さらに別の例:
[[1,2], [1,55], [4,7,8]]
行数が列と同じではなく、各行の要素数も同じではありません。
実際、ステップ 1 にはステップ 2 が含まれています。
私の試み:
だから私がこれまでに試みたのはこれです:
listIsEqual :: [[Int]] -> Bool
listIsEqual myList = (all (\x -> length x == (length myList)) )
現在、次のエラー メッセージが表示されます。
Couldn't match expected type `Bool' with actual type `[a0] -> Bool'
In the return type of a call of `all'
Probable cause: `all' is applied to too few arguments
In the expression: (all (\ x -> length x == (length myList)))
In an equation for `listIsEqual':
listIsEqual myList = (all (\ x -> length x == (length myList)))
誰が問題がどこにあるか教えてもらえますか?
この問題を解決する他の方法もありますか?