Prolog Language
추가 논리 술어
수색…
부작용이있는 술어
부작용 을 일으키는 술어는 순수한 논리의 영역을 벗어납니다. 예를 들면 다음과 같습니다.
-
writeq/1
-
read/1
-
format/2
부작용은 프로그램 내에서 추론 할 수없는 현상입니다. 예를 들어, 시스템 단말기에서 파일이나 출력을 삭제합니다.
메타 논리 술어
인스턴스화에 대한 그 이유는 메타 논리라고 술어. 예 :
-
var/1
-
ground/1
-
integer/1
이 술어는 순수한 단조 로지 논리 프로그램의 영역 밖에 있습니다. 왜냐하면 논리 곱셈 의 결합 성 ( commutativity) 같은 속성을 깨뜨리기 때문입니다.
메타 논리적 인 다른 술어에는 다음이 포함됩니다.
-
arg/3
-
functor/3
-
(=..)/2
이 술어는 원칙적 으로 1 차 로직 내에서 모델링 될 수 있지만 무한 수의 절이 필요합니다.
모든 솔루션 술어
모든 솔루션 에 대한 이유가 비논리적이라는 조건. 예를 들면 다음과 같습니다.
-
setof/3
-
findall/3
-
bagof/3
! / 0 및 관련 조건 자
Prolog 프로그램의 선언적 읽기를 방해하거나 금지하는 술어는 논리적입니다. 그러한 술어의 예는 다음과 같습니다.
-
!/0
-
(->)/2
및 if-then-else -
(\+)/1
이러한 술어는 통역사의 실제 제어 흐름을 고려하여 절차 적으로 만 이해할 수 있으며 순수 로직의 영역을 넘어서고 있습니다.
Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow