다음 코드를 수정 한 후 다음 오류 메시지가 표시되고 아무리 시도해도 문제가 해결되지 않습니다.함수에서 ML을 컴파일 할 때 오류가 발생했습니다.
오류 : 구문 오류 : 삭제 END RPAREN 재미
코드는 다음과 같습니다
fun we (array1 , k, n, fif1) = if Queue.isEmpty fif1 then (array1, ~1 , n ,
fif1)
else (
let
val b = Queue.head(fif1)
val y = Queue.dequeue(fif1)
val z = #1 b
in
if ((Array.sub (array1 , z)) = (What)) then (array1 , #2 y , n , fif1) else
(
if (Array.sub (array1 ,(z+n)) <> (Block)) then (
(Queue.enqueue (fif1 , (z, (#2 b)))) ; Array.update (array1 , ((z)+n) , Block)) else();
if ((Array.sub (array1 , (z+1))) <> (Block)) then (
Queue.enqueue (fif1 ,((z+1), ((#2b) + 1))); Array.update (array1 , (z+1) , Block)) else() ;
if (Array.sub (array1 , (z-1)) <> (Block)) then (
Queue.enqueue (fif1 , (((z-1), ((#2 b)+1)))) ; Array.update (array1 , (z-1) , Block)) else() ;
if ((Array.sub (array1 , (z-n))) <> (Block)) then
(Queue.enqueue (fif1 , ((z-n), ((#2 b)+2))); Array.update (array1 , (z-n) , Block)) else() ;
we (array1 , k, n , fif1));
end)
fun tb filename =
let
val (n, array1) = parse filename
val c = findt (T, array1, 0)
val fif1 = Queue.mkQueue()
in
#2 we (array1, 0, n, Queue.enqueue (fif1 , (c,0)))
end
및 오류 메시지가 코드
we (array1 , k, n , fif1));
end)
fun tb filename =
가능한 모든 도움 것의이 부분에 관한 것입니다 크게 감사드립니다, 미리 감사드립니다! SML ;
에서
고맙습니다. 나는 그것을 고치려고 노력할 것이다. 다른 문제가 생기면 여기에 의견을 말하면 코드에 대한 몇 가지 다른 문제가있을 경우를 대비하여이 질문을 나중에 확인할 수 있으면 감사하겠습니다. – brera
이제는 다음과 같은 문제가 발생합니다. val fif1 = Queue.mkQueue ( ) # 2 (우리는 array1, 0, n, Queue.enqueue (fif1, (c, 0)))) stdIn : 60.6- 60.32 오류 : 연산자 및 피연산자 동의하지 [TYCON 불일치] 오퍼레이터 도메인 : 부 피연산자 : Queue.mkQueue (0,0) 표준 입력 : * 식 INT INT 61.9-61.57 오류 : 연산자 및 피연산자를 돈 '가 t 동의 [TYCON 불일치] 오퍼레이터 도메인 : 사각형 배열 *의 INT *의 INT * (INT의 *의 INT) Queue.queue 피연산자 : 사각형 배열 * 식 INT의 *의 INT의 * 유닛 : bfs1 (array1,0, N, Queue.enqueue (fif1, (,))) – brera