DFS 알고리즘을 구현할 때 명령형 기능을 사용해야합니다. 코드는 다음과 같습니다haskell의 패턴 분석 오류
type ST s a = s -> (a, s)
returnST :: a -> ST s a
returnST a s = (a, s)
thenST :: ST s a -> (a -> ST s b) -> ST s b
(m 'thenST' k) s = k a t where (a, t) = m s
그러나 GHCi 6.12.3은 마지막 코드 줄에서 '패턴의 구문 분석 오류'를 제공합니다. 나는 종이에서이 코드 조각을 얻는다. 이 신문의 저자가 사용하는 컴파일러가 지금과 같이 엄격한 문법 규칙을 가지고 있지 않을 가능성이 있습니까? 이 오류를 수정하는 방법은 무엇입니까?
당신은 DFS가 가변 상태를 필요로하지 않는다는 것을 알고 있습니까? 귀하의 첫 번째 문장은 그렇지 않은 것을 의미합니다. –
@TomMD 방금 종이를 읽고 아이디어를 구현하고 싶습니다. – machinarium