2015-02-03 2 views
2

데이터 로그가 세트 또는 멀티 세트에서 작동합니까? 프롤로그에도 똑같이 적용됩니까? 나는 그것에 관한 어떠한 문서도 찾을 수 없었다.데이터 로그 및 프롤로그의 의미는 무엇입니까?

+0

Prolog는 멀티 세트를 처리하기위한 술어를 가지고 있는데, 이것이 당신이 요구하는 것이라면 ("프롤로그 멀티 세트"라고 말함). –

+0

고마워요 @ScottHunter. 프롤로그가 기본적으로 세트에서 작동한다는 것을 의미합니까? – JRR

+0

프롤로그의 기본 데이터 구조는 * 목록 *이며, 이는 종종 세트처럼 사용되지만 둘 다 중복 및 존중 순서를 허용합니다. –

답변

3

Datalog의 의미는 유한 집합에 정의됩니다.

그러나 Prolog는 응답 대체 시퀀스를 제공하고 Prolog의 경우 제약 조건 응답을 제공합니다. 답 대체는 X = 1과 같은 단순한 솔루션 일 수도 있지만 X = [_A,_B,_C]과 같이 무한히 많은 솔루션을 나타낼 수도 있습니다. 대답 대체 시퀀스는 다중 세트로 볼 수 있지만 정밀 시퀀스가 ​​중요하기 때문에 좀 더 일반적입니다. X = 1 ; X = 2 ; X = 1에서와 같습니다.

제약 조건에 대한 일반적인 답은 개념을 조금 더 확장합니다. 대답 X in 2..sup, X mod 2 #= 0에는 무한히 많은 해결책이 포함되어 있으며, 또한 많은 수의 X in 1..3 또는 심지어 X in 2..sup, X mod 2 #= 0, X mod 2 #= 1의 아무 것도 포함 할 수 없습니다.

+0

감사합니다. Datalog의 형식적인 의미에 대한 링크가 있습니까? – JRR

+1

[위키 항목] (http://en.wikipedia.org/wiki/Datalog)이 충분하지 않습니까? – false

+0

Wiki는 유한 집합에 대한 Datalog의 종료를 보장하지만 유한 집합이 기본값인지 여부를 언급하지 않습니다. – JRR