나는이 스레드를 넘어서서 Haskell List Comprehension 이제이 함수의 모든 셀이 실제로 비어 있지만 오직 비어있는 상태의 소품을 작성하려고합니다. 컴파일 할 때 다음과 같은 오류 메시지가 표시됩니다.블럭에 소품 쓰기에 도움이 필요하십니까 :: 스도쿠 → [Pos] (Haskell)
{-
Property that states that all cells in the blanks list are actually blank
-}
prop_blank_pos :: Sudoku → Bool
prop_blank_pos sud = (rows sud) !! (fst pair) !! (snd pair) ≡ Nothing
where pair = blanks sud
could't 매치 예상 유형 '(a, b)'는 첫 번째 인수 'FST'namley 쌍 '(!)'의 제 namley FST 유추 유형에 대해 '[순위] 의 첫 번째 인수 쌍 '(행) bankey ('행의 SUD) '
편집
내 질문에 내가 공백에서 얻을 목록 목록입니다입니다 [포스] 포함 [(아무것도, 아무것도), (아무것도, 아무것도 없음) ... 등].
두 튜플의 실제 요소가 모두 "없음"인지, 즉 [Pos]의 모든 요소가 (Nothing, Nothing)인지 확인하고 싶습니다. 이것을 어떻게 확인할 수 있습니까? 아무도 코드 샘플을 작성할 수 있습니까, Im은 haskell 구문을 잘 못합니다. 여기에 편집 2
가 여기에 soduku의 예
example :: Sudoku
example =
Sudoku
[ [Just 3, Just 6, Nothing,Nothing,Just 7, Just 1, Just 2, Nothing,Nothing]
, [Nothing,Just 5, Nothing,Nothing,Nothing,Nothing,Just 1, Just 8, Nothing]
, [Nothing,Nothing,Just 9, Just 2, Nothing,Just 4, Just 7, Nothing,Nothing]
, [Nothing,Nothing,Nothing,Nothing,Just 1, Just 3, Nothing,Just 2, Just 8]
, [Just 4, Nothing,Nothing,Just 5, Nothing,Just 2, Nothing,Nothing,Just 9]
, [Just 2, Just 7, Nothing,Just 4, Just 6, Nothing,Nothing,Nothing,Nothing]
, [Nothing,Nothing,Just 5, Just 3, Nothing,Just 8, Just 9, Nothing,Nothing]
, [Nothing,Just 8, Just 3, Nothing,Nothing,Nothing,Nothing,Just 6, Nothing]
, [Nothing,Nothing,Just 7, Just 6, Just 9, Nothing,Nothing,Just 4, Just 3]
]
편집 3 입니다 스도쿠는 당신이 정확히 필요한 확실하지 않다
data Sudoku = Sudoku { rows :: [[Maybe Int]] }
deriving (Show, Eq)
아마도 '쌍'은 튜플의 목록입니다. 그런 다음 Johan은 목록의 모든 요소에 대한 조건을 확인하기 위해'all'을 사용해야합니다. – dave4420
liszt로 할 때 다음과 같은 오류 메시지가 표시됩니다. 예상 유형 '[(어쩌면, 아마도 어쩌면 a1)]과 일치 할 수 없음' 유추 유형 [Pos] 'all'의 두 번째 인수에서 ' namely (blanks sud) ' 표현식에서 모두 (≡ (Nothing, Nothing)) (blanks sud) 아무에게도 이것이 작동하도록 컴파일러를 기쁘게하는 방법이 있습니까? :) – Darren
ghci에서 모듈을로드 한 후,': i Pos'의 결과는 무엇입니까? ': t blanks'의 결과는 무엇입니까? 컴파일러는 'Pos'가 절대로 (Nothing, Nothing)이 될 수 없다는 것을 알려주므로, 그 값과 비교하는 것은 의미가 없습니다. –