2016-07-03 1 views

답변

4

연산자는 술어에 대한 단순한 구문 설탕입니다. X #= Y을 쓰면 #=(X,Y)의 줄임말이므로 (#=)/2 술어를 찾습니다.

오퍼레이터는 SWI-Prolog documentation의 술어로 언급된다

산술 표현식은 XY 같다. 정수를 이상으로 추론 할 때는 (is)/2(#=)/2으로 대체하여보다 일반적인 관계를 얻으십시오. 선언적 정수 산술 (섹션 A.8.3 참조)을 참조하십시오.

그들은 유한 도메인 (CLP (FD)) 패키지에 제약 논리 프로그래밍의 일부이다. 이 연산자의 한 가지 이점은 복수 방향으로 사용될 수 있다는 것입니다. 연산자는 (is)/2 연산자보다 많습니다. 예 :

 
?- use_module(library(clpfd)). 
true. 

?- 4 #= 2*Y. 
Y = 2. 

?- X #= 2*16. 
X = 32. 

또한 제약 조건이 지연 될 수 있습니다. 예 :

?- X #= 2*Y, Y #= 14. 
X = 28, 
Y = 14. 

자세한 내용은 this clpfd primer by @mat을 참조하십시오.