Prolog standards compliance

Prolog is one of many logic programming languages. The ISO Prolog standard: ISO/IEC 13211-1, published in 1995, aims to standardise the existing practices of the many implementations of Prolog. It has clarified aspects of the language that were previously ambiguous.

Validation

The following tables compare the compliance of Prolog implementations with the ISO standard ISO/IEC 13211. The results were obtained by Péter Szabó and Péter Szeredi.

Prolog versions

  • SICStus 3.12.3 (running in ISO mode) 1
  • SWI-Prolog 5.4.7 (running in ISO mode, garbage collection off).
  • Yap 5.0.1 (ISO mode disabled) 2
  • gprolog 1.2.16
  • Ciao-prolog 1.10p6 3
  • aprolog 1.22

Syntax of terms

Prolog

term_sx:1

term_sx:2

term_sx:3

term_sx:4

term_sx:5

term_sx:6

term_sx:7

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Operators

Prolog

ops:1

ops:2

ops:3

ops:4

ops:5

ops:6

ops:7

ops:8

ops:9

ops:10

ops:11

ops:12

ops:13

ops:14

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Lists and braces {}

Prolog

list:1

list:2

list:3

curly:1

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Double quotes

Prolog

dbl_qts:1

dbl_qts:2

dbl_qts:3

dbl_qts:4

dbl_qts:5

dbl_qts:6

dbl_qts:7

dbl_qts:8

dbl_qts:9

dbl_qts:10

dbl_qts:11

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Control structures

true & fail

Prolog

true:1

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

call

Prolog

call:1

call:2

call:3

call:4

call:5

call:6

call:7

call:8

call:9

call:10

call:11

call:12

call:13

call:14

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Cuts

Prolog

cut:1

cut:2

cut:3

cut:4

cut:5

cut:6

cut:7

cut:8

cut:9

cut:10

cut:11

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Conjunction and disjuction

Prolog

and:1

and:2

and:3

or:1

or:2

or:3

or:4

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

if-then

Prolog

if_then:1

if_then:2

if_then:3

if_then:4

if_then:5

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

if-then-else

Prolog

ifthels:1

ifthels:2

ifthels:3

ifthels:4

ifthels:5

ifthels:6

ifthels:7

ifthels:8

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Catch

Prolog

catch:1

catch:2

catch:3

catch:4

catch:5

catch:6

catch:7

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Unification

Unify

Prolog

unify:1

unify:2

unify:3

unify:4

unify:5

unify:6

unify:7

unify:8

unify:9

unify:10

unify:11

unify:12

unify:13

unify:14

unify:15

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Unify with occurs-check

Prolog

uni_woc:1

uni_woc:2

uni_woc:3

uni_woc:4

uni_woc:5

uni_woc:6

uni_woc:7

uni_woc:8

uni_woc:9

uni_woc:10

uni_woc:11

uni_woc:12

uni_woc:13

uni_woc:14

uni_woc:15

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Non-unification

Prolog

not_uni:1

not_uni:2

not_uni:3

not_uni:4

not_uni:5

not_uni:6

not_uni:7

not_uni:8

not_uni:9

not_uni:10

not_uni:11

not_uni:12

not_uni:13

not_uni:14

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Type tests

Type tests: var

Prolog

war:1

war:2

war:3

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Atoms (constants)

Prolog

atom:1

atom:2

atom:3

atom:4

atom:5

atom:6

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Type tests: integers

Prolog

integer:1

integer:2

integer:3

integer:4

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Type tests: float

Prolog

float:1

float:2

float:3

float:4

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Type tests: atomic

Prolog

atomic:1

atomic:2

atomic:3

atomic:4

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Type tests: compound

Prolog

compound:1

compound:2

compound:3

compound:4

compound:5

compound:6

compound:7

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Type tests: nonvar

Prolog

nonvar:1

nonvar:2

nonvar:3

nonvar:4

nonvar:5

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Type tests: number

Prolog

number:1

number:2

number:3

number:4

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Term comparison

Prolog

trm_cmp:1

trm_cmp:2

trm_cmp:3

trm_cmp:4

trm_cmp:5

trm_cmp:6

trm_cmp:7

trm_cmp:8

trm_cmp:9

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Prolog

trm_cmp:11

trm_cmp:12

trm_cmp:13

trm_cmp:14

trm_cmp:15

trm_cmp:16

trm_cmp:17

trm_cmp:18

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Creating and decomposing terms

functor

Prolog

functor:1

functor:2

functor:3

functor:4

functor:5

functor:6

functor:7

functor:8

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Prolog

functor:10

functor:11

functor:12

functor:13

functor:14

functor:15

functor:16

functor:17

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

arg

Prolog

arg:1

arg:2

arg:3

arg:4

arg:5

arg:6

arg:7

arg:8

arg:9

arg:10

arg:11

arg:12

arg:13

arg:14

arg:15

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

univ

Prolog

univ:1

univ:2

univ:3

univ:4

univ:5

univ:6

univ:7

univ:8

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Prolog

univ:10

univ:11

univ:12

univ:13

univ:14

univ:15

univ:16

univ:17

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

{{?}}

colspan="2" | yap

copy_term

Prolog

cp_term:1

cp_term:2

cp_term:3

cp_term:4

cp_term:5

cp_term:6

cp_term:7

cp_term:8

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Arithmetic comparisons

Prolog

ari_cmp:1

ari_cmp:2

ari_cmp:3

ari_cmp:4

ari_cmp:5

ari_cmp:6

ari_cmp:7

ari_cmp:8

ari_cmp:9

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Prolog

ari_cmp:11

ari_cmp:12

ari_cmp:13

ari_cmp:14

ari_cmp:15

ari_cmp:16

ari_cmp:17

ari_cmp:18

ari_cmp:19

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Prolog

ari_cmp:21

ari_cmp:22

ari_cmp:23

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Manipulating the knowledge base

clause

Prolog

clause:1

clause:2

clause:3

clause:4

clause:5

clause:6

clause:7

clause:8

clause:9

clause:10

clause:11

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

current_predicate

Prolog

cur_prd:1

cur_prd:2

cur_prd:3

cur_prd:4

cur_prd:5

cur_prd:6

cur_prd:7

cur_prd:8

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

asserta

Prolog

asserta:1

asserta:2

asserta:3

asserta:4

asserta:5

asserta:6

asserta:7

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

assertz

Prolog

assertz:1

assertz:2

assertz:3

assertz:4

assertz:5

assertz:6

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

retract

Prolog

retract:1

retract:2

retract:3

retract:4

retract:5

retract:6

retract:7

retract:8

retract:9

retract:10

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

abolish

Prolog

abolish:1

abolish:2

abolish:3

abolish:4

abolish:5

abolish:6

abolish:7

abolish:8

abolish:9

abolish:10

abolish:11

abolish:12

abolish:13

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Finding all solutions to a query

findall

Prolog

findall:1

findall:2

findall:3

findall:4

findall:5

findall:6

findall:7

findall:8

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

bagof

Prolog

bagof:1

bagof:2

bagof:3

bagof:4

bagof:5

bagof:6

bagof:7

bagof:8

bagof:9

bagof:10

bagof:11

bagof:12

bagof:13

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

setof

Prolog

setof:1

setof:2

setof:3

setof:4

setof:5

setof:6

setof:7

setof:8

setof:9

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Prolog

setof:11

setof:12

setof:13

setof:14

setof:15

setof:16

setof:17

setof:18

setof:19

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Prolog

setof:21

setof:22

setof:23

setof:24

setof:25

setof:26

setof:27

setof:28

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Input and Output

current_input

Prolog

currinp:1

currinp:2

currinp:3

currinp:4

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

current_output

Prolog

currout:1

currout:2

currout:3

currout:4

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

set_input

Prolog

set_in:1

set_in:2

set_in:3

set_in:4

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

set_output

Prolog

set_out:1

set_out:2

set_out:3

set_out:4

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

open

Prolog

open:1

open:2

open:3

open:4

open:5

open:6

open:7

open:8

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Prolog

open:10

open:11

open:12

open:13

open:14

open:15

open:16

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

close

Prolog

close:1

close:2

close:3

close:4

close:5

close:6

close:7

close:8

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

flush_output

Prolog

flush_o:1

flush_o:2

flush_o:3

flush_o:4

flush_o:5

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Stream properties

Prolog

strprop:1

strprop:2

strprop:3

strprop:4

strprop:5

strprop:6

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

At end of stream test

Prolog

atendst:8

atendst:9

atendst:10

atendst:11

atendst:12

atendst:13

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Set stream properties

Prolog

setstrp:1

setstrp:2

setstrp:3

setstrp:4

setstrp:5

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Reading characters: getchar and getcode

Prolog

getchar:1

getcode:2

getchar:3

getcode:4

getchar:5

getcode:6

getchar:7

getcode:8

getchar:9

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Prolog

getchar:11

getcode:12

getchar:13

getchar:14

getchar:15

getchar:16

getchar:17

getchar:18

getchar:19

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Prolog

getchar:21

getchar:22

getcode:23

getcode:24

getcode:25

getcode:26

getcode:27

getcode:28

getcode:29

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Prolog

getcode:31

getcode:32

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Writing characters: peekchr & peekcde

Prolog

peekchr:1

peekcde:2

peekchr:3

peekcde:4

peekchr:5

peekcde:6

peekchr:7

peekcde:8

peekchr:9

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Prolog

peekchr:11

peekchr:12

peekcde:13

peekchr:14

peekchr:15

peekchr:16

peekchr:17

peekchr:18

peekchr:19

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Prolog

peekchr:21

peekchr:22

peekcde:23

peekcde:24

peekcde:25

peekcde:26

peekcde:27

peekcde:28

peekcde:29

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Prolog

peekcde:31

peekcde:32

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Writing characters: putchar & putcode & nl

Prolog

putchar:1

putchar:2

putchar:3

putchar:4

putchar:5

putchar:6

putchar:7

putchar:8

putchar:9

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Prolog

nl:11

nl:12

putchar:13

putchar:14

putchar:15

putchar:16

putchar:17

putcode:18

putcode:19

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Prolog

putcode:21

putcode:22

putcode:23

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Reading characters: getbyte

Prolog

getbyte:1

getbyte:2

getbyte:3

getbyte:4

getbyte:5

getbyte:6

getbyte:7

getbyte:8

getbyte:9

getbyte:10

getbyte:11

getbyte:12

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Writing characters: peekbte

Prolog

peekbte:1

peekbte:2

peekbte:3

peekbte:4

peekbte:5

peekbte:6

peekbte:7

peekbte:8

peekbte:9

peekbte:10

peekbte:11

peekbte:12

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Writing characters: putbyte

Prolog

putbyte:1

putbyte:2

putbyte:3

putbyte:4

putbyte:5

putbyte:6

putbyte:7

putbyte:8

putbyte:9

putbyte:10

putbyte:11

putbyte:12

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

{{?}}

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

{{?}}

Reading terms: read

Prolog

read:1

read:2

read:3

read:4

read:5

read:6

read:7

read:8

read:9

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Prolog

read:11

read:12

read:13

read:14

read:15

read:16

read:17

read:18

read:19

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Prolog

read:21

read:22

read:23

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Writing terms: write

Prolog

write:1

write:2

write:3

write:4

write:5

write:6

write:7

write:8

write:9

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Prolog

write:11

write:12

write:13

write:14

write:15

write:16

write:17

write:18

write:19

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Prolog

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Operator precedence

Prolog

op:1

op:2

op:3

op:4

op:5

op:6

op:7

op:8

op:9

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Prolog

op:11

op:12

op:13

op:14

op:15

op:16

op:17

op:18

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

current_op

Prolog

currop:1

currop:2

currop:3

currop:4

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Character conversion

char_conversion

Prolog

charcnv:1

charcnv:2

charcnv:3

charcnv:4

charcnv:5

charcnv:6

charcnv:7

charcnv:8

charcnv:9

charcnv:10

charcnv:11

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

current_char_conversion

Prolog

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Control structures (cont)

not

Prolog

not:1

not:2

not:3

not:4

not:5

not:6

not:7

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

once

Prolog

once:1

once:2

once:3

once:4

once:5

once:6

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

repeat

Prolog

repeat:1

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Character-string operations

atom_length

Prolog

atomlen:1

atomlen:2

atomlen:3

atomlen:4

atomlen:5

atomlen:6

atomlen:7

atomlen:8

atomlen:9

atomlen:10

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

atom_concat

Prolog

atomcat:1

atomcat:2

atomcat:3

atomcat:4

atomcat:5

atomcat:6

atomcat:7

atomcat:8

atomcat:9

atomcat:10

atomcat:11

atomcat:12

atomcat:13

atomcat:14

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

sub_atom

Prolog

subatom:1

subatom:2

subatom:3

subatom:4

subatom:5

subatom:6

subatom:7

subatom:8

subatom:9

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Prolog

subatom:11

subatom:12

subatom:13

subatom:14

subatom:15

subatom:16

subatom:17

subatom:18

subatom:19

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Prolog

subatom:21

subatom:22

subatom:23

subatom:24

subatom:25

subatom:26

subatom:27

subatom:28

subatom:29

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Prolog

subatom:31

subatom:32

subatom:33

subatom:34

subatom:35

subatom:36

subatom:37

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

atom_chars

Prolog

atomchs:1

atomchs:2

atomchs:3

atomchs:4

atomchs:5

atomchs:6

atomchs:7

atomchs:8

atomchs:9

atomchs:10

atomchs:11

atomchs:12

atomchs:13

atomchs:14

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

atom_codes

Prolog

atomcds:1

atomcds:2

atomcds:3

atomcds:4

atomcds:5

atomcds:6

atomcds:7

atomcds:8

atomcds:9

atomcds:10

atomcds:11

atomcds:12

atomcds:13

atomcds:14

atomcds:15

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

char_code

Prolog

charcde:1

charcde:2

charcde:3

charcde:4

charcde:5

charcde:6

charcde:7

charcde:8

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

number_chars

Prolog

numbchs:1

numbchs:2

numbchs:3

numbchs:4

numbchs:5

numbchs:6

numbchs:7

numbchs:8

numbchs:9

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Prolog

numbchs:11

numbchs:12

numbchs:13

numbchs:14

numbchs:15

numbchs:16

numbchs:17

numbchs:18

numbchs:19

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Prolog

numbchs:21

numbchs:22

numbchs:23

numbchs:24

numbchs:25

numbchs:26

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

number_codes

Prolog

numbcds:1

numbcds:2

numbcds:3

numbcds:4

numbcds:5

numbcds:6

numbcds:7

numbcds:8

numbcds:9

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Prolog

numbcds:11

numbcds:12

numbcds:13

numbcds:14

numbcds:15

numbcds:16

numbcds:17

numbcds:18

numbcds:19

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

{{?}}

Prolog

numbcds:21

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Flags

Set_prolog_flag

Prolog

setpflg:1

setpflg:2

setpflg:3

setpflg:4

setpflg:5

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Current_prolog_flag

Prolog

curpflg:1

curpflg:2

curpflg:3

curpflg:4

curpflg:5

curpflg:6

curpflg:7

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Terminating execution

Prolog

halt1:1

halt1:2

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Arithmetic: Where expressions are evaluated

Prolog

eval:1

eval:2

eval:3

eval:4

eval:5

eval:6

eval:7

eval:8

eval:9

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Prolog

eval:11

eval:12

eval:13

eval:14

eval:15

eval:16

eval:17

eval:18

eval:19

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Prolog

eval:21

eval:22

eval:23

eval:24

eval:25

eval:26

eval:27

eval:28

eval:29

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Prolog

eval:31

eval:32

eval:33

eval:34

eval:35

eval:36

eval:37

eval:38

eval:39

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Prolog

eval:41

eval:42

eval:43

eval:44

eval:45

eval:46

eval:47

eval:48

eval:49

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Prolog

eval:51

eval:52

eval:53

eval:54

eval:55

eval:56

eval:57

eval:58

eval:59

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Arithmetic: functors allowed in expressions

pow

Prolog

pow:1

pow:2

pow:3

pow:4

pow:5

pow:6

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

sin

Prolog

sin:1

sin:2

sin:3

sin:4

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

cos

Prolog

cos:1

cos:2

cos:3

cos:4

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

atan

Prolog

atan:1

atan:2

atan:3

atan:4

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

exp1

Prolog

exp1:1

exp1:2

exp1:3

exp1:4

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

log

Prolog

log:1

log:2

log:3

log:4

log:5

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

sqrt

Prolog

sqrt:1

sqrt:2

sqrt:3

sqrt:4

sqrt:5

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Bitwise operations

Right shift

Prolog

bit_rsh:1

bit_rsh:2

bit_rsh:3

bit_rsh:4

bit_rsh:5

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Left shift

Prolog

bit_lsh:1

bit_lsh:2

bit_lsh:3

bit_lsh:4

bit_lsh:5

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Bitwise and

Prolog

bit_and:1

bit_and:2

bit_and:3

bit_and:4

bit_and:5

bit_and:6

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Bitwise or

Prolog

bit_or:1

bit_or:2

bit_or:3

bit_or:4

bit_or:5

bit_or:6

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

Bitwise negation

Prolog

bit_neg:1

bit_neg:2

bit_neg:3

bit_neg:4

bit_neg:5

colspan="2" | aprolog

colspan="2" | ciao

colspan="2" | gprolog

colspan="2" | sicstus

colspan="2" | sicstus4

colspan="2" | swipl

colspan="2" | yap

References

See also