(this is work in progress, discussion)
#Queryanswer description, stc#70 SICStus 4.9.0 Scryer 0.10.0 Trealla 3.10.23 Shumway 0.9.2 Ichiban 1.2.0 Eye 1.5.50 GNU 1.6.0 X 1.0.63 Tau 0.3.4 ECLiPSe 7.0#42 -L iso IV 1.4.2 SWI 9.3.25 YAP 7.4.0 B 7.8b7 IF V5.1B Minerva 2.4 Cx 0.98.3 Flowlog 4.9.6 Ciao 1.25.0 XSB 5.0.0
#Queryanswer description SI Sc Tr Sh 1b Ey GN X Τ EC IV SW YA B IF Mi Cx Fl Ci XS
1?- current_prolog_flag(max_arity,A). A = unbounded
| A = ... .

255

255
u u u u
255

255
u u
1000
u u
65535

127

125

64

255

255

65535
2?- current_prolog_flag(max_arity,A),
functor(F,f,A).
A = ..., F = ...
| type_error(integer,unbounded).
A A
t

t

t

t
A A
t

t
A
t

t
A A A A A A A
3?- current_prolog_flag(max_arity,A),
A1 is A+1,functor(F,f,A1).
representation_error(max_arity)
| type_error(evaluable,unbounded/0).
r r
t

t

t

t
r r
t

t

true

t

t
r r r r r r r
4?- current_prolog_flag(max_arity,A),
functor(F,f,A),asserta(F).
A = ..., F = ...
| type_error(integer,unbounded).
A r._e.
t

t

t

t
A A
t

t
A
t

t
A A A db.e A A mem.v
5?- ... =A,functor(F,f,A),asserta(F). maximal A 255 254 255 1023 none none 255 255 none 255 err 65535 1024 16383 s._e. 65535 127 125 32 255 255 3352
13?- current_prolog_flag(max_arity,unbounded), functor(G_0,f,10000),G_0. false
| existence_error(procedure,f/10000).
f f
e

e

e

e
f f
e
o.err. f r._e.(m.) i._e. f f f f f f f
6?- current_predicate(p/10000). false. re._e.(m._a.) OK OK OK OK OK re._e.(m._a.) ty._e.(p._i,..) OK ty._e.(p._i.,..) OK OK OK OK OK re._e.(m._a.) re._e.(m._a.) OK OK OK
7?- N is 2^63,current_predicate(p/N). false
| evaluation_error(int_overflow).
re._e.(m._a.) f f f
e
f
e

e

e
ty._e.(p._i.,..) ty._e.(e.,..) ty._e.(p._i.,..) res._e./2 t._a./3 float(N) ex._e. float(N) ty._e.(p._i.,..) ty._e.(e.,..) N < 0
8?- F=0x200000,N is F*F*F,current_predicate(p/N). false
| evaluation_error(int_overflow).
re._e.(m._a.) f f f
e
f
e

e

e
ty._e.(p._i.,..) f ty._e.(p._i.,..) res._e./2 t._a./3 f N < 0 sy.e. ty._e.(p._i,..) f N < 0
9?- catch(current_prolog_flag(max_procedure_arity,V), error(domain_error(prolog_flag, max_procedure_arity),_),V=none). V = none
| V = ... .
n n
255

1023
n n n n n false false
1024
false false n n db.e. n
255
n
10?- current_prolog_flag(max_procedure_arity,V). domain_error(prolog_flag, max_procedure_arity)
| V = ... .
d d
255

1023
d d d d d false false
1024
false false d d db.e. d
255
d
11?- current_prolog_flag(F,V), F=max_procedure_arity. false
| F = max_procedure_arity, V = ... .
f f
255

1023
f f f f f f f
1024
f f f f f f
255
f
12?- current_prolog_flag(always_invalid,V). domain_error(prolog_flag,always_invalid). OK OK OK OK OK OK OK OK OK false false false false false OK OK db.e. OK false OK
14?- current_predicate(foo/A). false. OK OK OK OK t._e.(p.,..) OK OK OK OK OK OK OK OK OK OK i._e. OK OK OK OK
15?- current_predicate(P/ -1). type_error(predicate_indicator,_/ -1). i._e. OK OK OK OK OK d._e.(n.,..) OK d._e.(n.,..) OK u._c(..) d._e.(n.,..) d._e.(n.,..) false OK i._e. ..(wh.,..) OK false OK
16?- current_predicate(0/0). type_error(predicate_indicator,0/0). ..(a.,0) OK OK OK OK OK ..(a.,0) OK ..(a.,0) OK OK OK false OK ..(a.,0) ..(a.,0) OK OK ..(a.,0) OK
17?- current_predicate(N/N). type_error(predicate_indicator,_A/_A)
| false.

f

f

f n

f
t
f

f

f

f
terr t N=...;..
f

f

f
i._e.
f

f
..(a.,2)
f
18?- abolish(foo/A). instantiation_error
| type_error(predicate_indicator,foo/_A).
i i i i i i i i i i i i i i i i i i false i
19?- abolish(P/ -1). instantiation_error
| domain_error(not_less_than_zero,-1)
| type_error(predicate_indicator,_A/ -1).
i i i i i i i i i i i i i i i i
d
i false i
20?- abolish(0/a). type_error(atom,0)
| type_error(integer,a)
| type_error(predicate_indicator,0/a).
a
i
a a a a a a a a false a
i
a a a
i
a false a
21?- abolish(inex/1). true. OK OK OK OK p._e.(m..) OK OK OK OK OK p._e.(m..) OK OK OK OK OK OK OK OK OK
22?- abolish(p/10000). representation_error(max_arity)
| true.
r r
t n
..(mpa) p._e.(m...)
t
r r
t
o.err p._e.(m...) ..(mpa)
t

t
r r r r false r

Version Control, Validated HTML