범위 :프롤로그 - 번호 생성 목록은 주어진 피팅 내가 좋아하는 술어를 사용하고 싶습니다
range(X,0,5) :- member(X,[0,1,2,3,4,5]).
range(X,4,200) :- member(X,[4,5,6...198,199,200]).
range(X,-1000000,1000000) :- member(X,[-1000000,...,1000000]).
dom_range(X,-1000000,1000000) :- domain(X, [-1000000,...,1000000]).
어떻게 잘 (로 솔루션의 성능을 복용 프롤로그에서 그것을 코드 : 의미
range(X,0,5)
range(X,4,200)
range(X,-1000000,1000000)
dom_range(X,-1000000,1000000)
계정 - 재귀 수준 등)?
해결책은 GNU-Prolog에서 실행될 것으로 예상됩니다.
P. 질문은 this question에서 영감을 얻었습니다.
도메인()에 해당합니까? –
정확히 도메인이란 무엇입니까? 나는 위의 시나리오에서 dom_range가 할 것으로 예상되는 것을 말할 수 없었다. 범위에 인수를 전달하는 또 다른 방법일까요? dom_range (Out, [Low, High]) : - 범위 (Out, Low, High)입니다. – DaveEdelstein
[이 튜토리얼] (http://wazniak.mimuw.edu.pl/index.php?title=Sztuczna_inteligencja/SI_Modu%C5%82_3_-_Wnioskowanie_w_PROLOG-u)에서 "도메인"에 대해 읽었습니다. 세부 사항에 대한 확신이 없으므로 나는 Prolog 초보자이다. [fd_domain (+ fd_variable_list_or_fd_variable, + 정수, + 정수)로 지정된 [fd_domain/3] (http://www.gprolog.org/manual/gprolog.html#htoc321)을 발견 한 Gnu-Prolog 매뉴얼을 확인하는 동안, ] (http://www.gprolog.org/manual/gprolog.html#htoc321) - 어떻게 생각하세요? 다른 해결책일까요? –