exShell이라는 과제를위한 코드를 받았습니다. 그것의 코드는 부정을 위해 (not)/1
을 사용합니다. 저는 현재 모든 인스턴스를 (\+)/1
으로 대체했습니다. 그러나 왜 그것이 그곳에 있을지 궁금합니다. (\+)/1
의 별칭을 (not)/1
으로 할 수 있습니까, 아니면 cprolog 또는 다른 프롤로그 컴파일러 (예 : cprolog)의 규칙입니다.프롤로그에서 별칭`(not)/1`
solve(not A, C, Rules, (not Proof, C), T, Ask) :- !,
T1 is -1 * T,
solve(A, C1, Rules, Proof, T1, Ask),
C is -1 * C1.
이것은 사용 된 예입니다.
예 (들)? –
'(not)/1'과'(\ +)/1'은 이미 별명입니다. 오직'(not)/1'은'(\ +)/1'이 사용되지 않는 반면에, (not)/1'은 사용되지 않습니다. 자세한 설명은 [이 답변] (http://stackoverflow.com/a/8523825/1027951)을 참조하십시오. '+'는 증명할 수있는 것이고 실제로는 반박하지 않는 것을 의미합니다. "증명할 수 없다"는 의미는 "not"보다 옳습니다. – m09
@ 모그 : 나는 적어도 당신의 코멘트를 링크 된 대답만큼 설명 적이라고 생각한다. ... – CapelliC