Scryer Prolog - status quo
missing,
checked,
problem.
- Part 1: General core
-
- 7.4.2 Directives
-
1 dynamic/1.
2 multifile/1.
3 discontiguous/1.
4 op/3.
5 char_conversion/2.
6 initialization/1.
7 include/1.
8 ensure_loaded/1.
9 set_prolog_flag/2.
- 7.8 Control constructs
-
1 true/0.
2 fail/0.
3 call/1.
4 !/0.
5 (',')/2.
6 (;)/2 – disjunction.
7 (->)/2.
8 (;)/2 – if-then-else.
9 catch/3.
10 throw/1.
- 7.10.2.13 Stream properties
-
file_name/1.
mode/1.
input/0.
output/0.
alias/1.
position/1.
end_of_stream/1.
eof_action/1.
reposition/1.
type/1.
- 7.10.3 Read-options list
-
variables/1.
variable_names/1.
singletons/1.
- 7.10.4 Write-options list
-
quoted/1.
ignore_ops/1.
variable_names/1.
numbervars/1.
- 7.11.1 Flags defining integer type I
-
1 bounded.
2 max_integer.
3 min_integer.
4 integer_rounding_function.
- 7.11.2 Other flags
-
1 char_conversion.
2 debug.
3 maxarity.
4 unknown.
5 double_quotes.
- 7.12.2 Error classification
-
a) instantiation_error.
b) type_error.
c) domain_error.
d) existence_error.
e) permission_error.
f) representation_error.
g) evaluation_error.
h) resource_error.
i) syntax_error.
j) system_error.
k) uninstantiation_error.
- 8.2 Term unification
-
1 (=)/2.
2 unify_with_occurs_check/2.
3 (\=)/2.
4 subsumes_term/2.
- 8.3 Type testing
-
1 var/1.
2 atom/1.
3 integer/1.
4 float/1.
5 atomic/1.
6 compound/1.
7 nonvar/1.
8 number/1.
9 callable/1.
10 ground/1.
11 acyclic_term/1.
- 8.4 Term comparison
-
1 (@=<)/2, (==)/2, (\==)/2, (@<)/2, (@>)/2, (@>=)/2.
2 compare/3.
3 sort/2.
4 keysort/2.
- 8.5 Term creation and decomposition
-
1 functor/3.
2 arg/3.
3 (=..)/2.
4 copy_term/2
5 term_variables/2.
- 8.6 Arithmetic evaluation
-
1 (is)/2.
- 8.7 Arithmetic comparison
-
1 (=:=)/2, (=\=)/2, (<)/2, (=<)/2, (>)/2, (>=)/2.
- 8.8 Clause retrieval and information
-
1 clause/2.
2 current_predicate/1.
- 8.9 Clause creation and destruction
-
1 asserta/1.
2 assertz/1.
3 retract/1.
4 abolish/1.
5 retractall/1.
- 8.10 All solutions
-
1 findall/3.
2 bagof/3.
3 setof/3.
- 8.11 Stream selection and control
-
1 current_input/1.
2 current_output/1.
3 set_input/1.
4 set_output/1.
5 open/4, open/3.
6 close/2, close/1.
7 flush_output/1, flush_output/0.
8 stream_property/2, at_end_of_stream/0, at_end_of_stream/1.
9 set_stream_position/2.
- 8.12 Character input/output
-
1 get_char/2, get_char/1, get_code/1, get_code/2.
2 peek_char/2, peek_char/1, peek_code/1, peek_code/2.
3 put_char/2, put_char/1, put_code/1, put_code/2, nl/0, nl/1.
- 8.13 Byte input/output
-
1 get_byte/2, get_byte/1.
2 peek_byte/2, peek_byte/1.
3 put_byte/2, put_byte/1.
- 8.14 Term input/output
-
1 read_term/3, read_term/2, read/1, read/2.
2 write_term/3, write_term/2, write/1, write/2, writeq/1, writeq/2, write_canonical/1, write_canonical/2.
3 op/3.
4 current_op/3.
5 char_conversion/2.
6 current_char_conversion/2.
- 8.15 Logic and control
-
1 (\+)/1.
2 once/1.
3 repeat/0.
4 call/2..8.
5 false/0.
- 8.16 Atomic term processing
-
1 atom_length/2.
2 atom_concat/3.
3 sub_atom/5.
4 atom_chars/2.
5 atom_codes/2.
6 char_code/2.
7 number_chars/2.
8 number_codes/2.
- 8.17 Implementation defined hooks
-
1 set_prolog_flag/2.
2 current_prolog_flag/2.
3 halt/0.
4 halt/1.
- 9.1 The simple arithmetic functors
-
(+)/2, (-)/2, (*)/2, (//)/2,
(/)/2, (rem)/2, (mod)/2, (-)/1, abs/1, sign/1, float_integer_part/1,
float_fractional_part/1, float/1, floor/1, truncate/1, round/1,
ceiling/1,
(+)/1,
(div)/2.
- 9.3 Other arithmetic functors
-
1 (**)/2.
2 sin/1.
3 cos/1.
4 atan/1.
5 exp/1.
6 log/1.
7 sqrt/1.
8 max/2.
9 min/2.
10 (^)/2.
11 asin/1.
12 acos/1.
13 atan2/2.
14 tan/1.
15 pi/0.
- 9.4 Bitwise functors
-
1 (>>)/2.
2 (<<)/2.
3 (/\)/2.
4 (\/)/2.
5 (\)/1.
6 xor/2.
- Part 2: Modules
-
- 7.2 Module predicates
-
1 current_module/1.
2 predicate_property/2.
- 7.3 Clause retrieval and information
-
2 current_predicate/1.
- p.p Prolog prologue
-
1 member/2.
2 append/3.
3 length/2.
4 between/3.
5 select/3.
6 succ/2.
7 maplist/2..8.
- Superfluous extensions
-
bb_b_put/2, bb_get/2, bb_put/2,
Arithmetic support:
is/2 works for (+)/2, (-)/1, (-)/2, (*)/2, (//)/2, (**)/2, (div)/2, (/)/2, (rdiv)/2, (xor)/2, (rem)/2, (mod)/2, (/\)/2, (\/)/2, (>>)/2, (<<)/2, abs/1.
Comparison operators: >, <, =<, >=, =:=, =\=.
(:)/2
(@>)/2 (@>=)/2 (@=<)/2 (@<)/2 (=@=)/2 (\=@=)/2 (\+)/1 (==)/2 (\==)/2 (=)/2 (\=)/2 (=..)/2 (->)/2 (;)/2
abolish/1 acyclic_term/2 append/3 arg/3 asserta/1 assertz/1 atom/1 atomic/1 atom_chars/2 atom_codes/2 atom_length/2 bagof/3 call/1 call/2..62 catch/3 clause/2 compare/3 compound/1 copy_term/2 current_predicate/1 current_op/3 false/0 findall/3 float/1 functor/3 get_char/1 ground/1 halt/0 integer/1 keysort/2 nl/0 nonvar/1 once/1 op/3 phrase/2 phrase/3 read/1 repeat/0 retract/1 reverse/2 setof/3 sort/2 term_variables/2 throw/1 true/0 var/1 write/1 write_canonical/1 writeq/1 write_term/2
member/2 length/2 between/3 select/3 maplist/2..9
call_with_inference_limit/3
setup_call_cleanup/3
call_residue_vars/2
can_be/2 must_be/2
dif/2
expand_goal/2
expand_term/2
findall/4
freeze/2
goal_expansion/2
term_expansion/2
user:goal_expansion/2
user:term_expansion/2
bb_b_put/2 bb_get/2 bb_put/2 call_cleanup/2 cyclic_term/1 forall/2 gen_int/1 gen_nat/1 is_list/1 is_partial_string/1 memberchk/2 numbervars/2 numlist/2 numlist/3 partial_string/2 rational/1 repeat/1 string/1
Administrativa
ISO Prolog works,
Validated HTML