1
함수에 전달 된 인수에 패턴 일치를 사용하고 있습니다. 방법은 말을 너무 일치 "첫 번째 수준"하지만 깊이가 오류를 제공 이동하려는 모든 시도에 대해 잘 작동SML 함수 인수 패턴 일치
예를
fun nnf T = T
| nnf F = F
| nnf (LETTER(x)) = (LETTER(x))
| nnf (NEG(x)) = (NEG(nnf x))
| nnf (AND(x,y)) = (AND(nnf x, nnf y))
| nnf (OR(x,y)) = (OR(nnf x, nnf y))
| nnf (IMP(x,y)) = (OR(NEG(nnf x),(nnf y)))
| nnf (NEG(NEG(LETTER(x)))) = (LETTER(x))
| nnf (NEG(AND(LETTER(x),LETTER(y)))) = (OR(NEG(LETTER(x)),NEG(LETTER(y))))
| nnf (NEG(OR(LETTER(x),LETTER(y)))) = (AND(NEG(LETTER(x)),NEG(LETTER(y))));
val nnf = fn : prop -> prop
오류 난 "을 표준 입력 : 282.5-291.77 오류 중복에게 일치"
stdIn:282.5-291.77 Error: match redundant
T => ...
F => ...
LETTER x => ...
NEG x => ...
AND (x,y) => ...
OR (x,y) => ...
IMP (x,y) => ...
--> NEG (NEG (LETTER x)) => ...
--> NEG (AND (LETTER x,LETTER y)) => ...
--> NEG (OR (LETTER x,LETTER y)) => ...
그렇게 SML 무엇 다음 것은 다른 경우에도 "(NEG ("그들은 모두 시작부터 함수 정의의 마지막 3 절은 같은 것을 말하고있다 얻을.
을어떻게 극복합니까?
감사합니다. 그 트릭을했다. 바보 나 :) – Ankit