2013-09-02 2 views
1

내가 SWI에서 CLP (FD) 규칙 이런 종류의 주장해야합니다스위스 925 - 프롤로그 asserta 오류

asserta(schedule(A,B) :- V = [S0,S1,S2],V ins 0..sup). 

을하지만 난이 오류를 얻을 :

ERROR: Syntax error: Operator expected 
    ERROR: asserta(schedule(A,B) :- V = [S0,S1,S2],V 
    ERROR: ** here ** 
    ERROR: ins 0..sup) . 

왜? 고맙습니다!

답변

2

여기에 두 가지 오류가 있습니다 : 텍스트를 읽을 때 때로드

당신은 CLP (FD)가 있어야합니다. 그래서있을 필요가 use_module(library(clpfd)) 중 하나를 선

:- use_module(library(clpfd)). 

또는 최상위에 목표로 입력에서 같은 지시어. 운영자 양식에서 (ins)/2을 사용 중이므로이 작업이 필요합니다.

다른 문제는 누락 된 괄호입니다. 그것은 오히려 읽어야 AS를

..., asserta((schedule(A,B) :- V = [_,_,_], V ins 0..sup)), ... 

를 제외하고, 나는 그런 규칙을 주장하는 것은 매우 의미가 있다고 생각하지 않습니다. 동적 데이터베이스는 이와 같은 규칙을 주장하는 것과 함께 거의 사용되지 않습니다.