m = [[1,0,0],[2,-3,0],[4,5]]
t [email protected](x:xs) = let (m, n) = (length all, length x) in all (==n) (map length all)
コマンド:なぜ「すべて」が私にこの「期待されたタイプに一致できませんでしたか」を与えているのですか?
t m
ができます:
Couldn't match expected type `(Int -> Bool) -> [Int] -> t'
against inferred type `[[a]]'
In the expression: all (== n) (map length all)
In the expression:
let (m, n) = (length all, length x) in all (== n) (map length all)
In the definition of `t':
t ([email protected](x : xs))
= let (m, n) = ... in all (== n) (map length all)
私は、ハスケルがシャドウイングとは別の「すべて」の異なる意味を理解するのに十分にスマートであると思っていました。悲しい。ありがとう – gremo
@Gremo:潜在的に多くの 'すべて'あなたが意味するものを推測する*でしょうか? 1つの名前は1つのことを指し、それは良いことです - 複雑な予算には良い、単純には良い、コードに対する推論には良いです。 – delnan
@delnan:行列mが有効であるかどうかを確認しようとしています(各行の列数は同じです)。 (m、n)はretvalである。 – gremo