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)
명령 :"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 : 잠재적으로 많은 '모두'중 어떤 것이 었는지 추측 할 수 있습니까? 하나의 이름은 한 가지를 가리키며 좋은 것입니다. 복잡성 예산에 좋고, 단순함에 좋고, 코드에 대한 추론에 좋습니다. – delnan
@delnan : 숙제를 할 때 행렬 m이 유효한지 확인하려고합니다. 각 행의 열 개수는 같습니다. (m, n)은 retval이다. – gremo