Imported Upstream version 6.6.6
Євгеній Мещеряков
9 years ago
2525 | 2525 | |
2526 | 2526 | '$export_ops'([op(Pri, Assoc, Name)|T], Module, File) :- |
2527 | 2527 | catch(( op(Pri, Assoc, Module:Name), |
2528 | '$export_op'(Pri, Assoc, Name, File) | |
2528 | '$export_op'(Pri, Assoc, Name, Module, File) | |
2529 | 2529 | ), |
2530 | 2530 | E, '$print_message'(error, E)), |
2531 | 2531 | '$export_ops'(T, Module, File). |
2532 | 2532 | '$export_ops'([], _, _). |
2533 | 2533 | |
2534 | '$export_op'(Pri, Assoc, Name, File) :- | |
2535 | ( '$current_module'(LM, LM), | |
2536 | '$get_predicate_attribute'(LM:'$exported_op'(_,_,_), defined, 1) | |
2534 | '$export_op'(Pri, Assoc, Name, Module, File) :- | |
2535 | ( '$get_predicate_attribute'(Module:'$exported_op'(_,_,_), defined, 1) | |
2537 | 2536 | -> true |
2538 | ; '$execute_directive'(discontiguous(LM:'$exported_op'/3), File) | |
2537 | ; '$execute_directive'(discontiguous(Module:'$exported_op'/3), File) | |
2539 | 2538 | ), |
2540 | 2539 | '$store_clause'('$exported_op'(Pri, Assoc, Name), _Layout, File). |
2541 | 2540 | |
2590 | 2589 | % of the directive by throwing an exception. |
2591 | 2590 | |
2592 | 2591 | :- multifile prolog:sandbox_allowed_directive/1. |
2592 | :- meta_predicate '$valid_directive'(:). | |
2593 | 2593 | |
2594 | 2594 | '$valid_directive'(_) :- |
2595 | 2595 | current_prolog_flag(sandboxed_load, false), !. |
3010 | 3010 | |
3011 | 3011 | system:term_expansion((:- at_halt(Goal)), |
3012 | 3012 | system:'$at_halt'(Module:Goal, File:Line)) :- |
3013 | \+ current_prolog_flag(xref, true), | |
3013 | 3014 | source_location(File, Line), |
3014 | 3015 | '$set_source_module'(Module, Module). |
3015 | 3016 |
314 | 314 | stream_property(Stream, file_name(File)) |
315 | 315 | } |
316 | 316 | -> swi_location(file(File, Line, LinePos, CharNo)) |
317 | ; [ 'Stream ~w:~d:~d '-[Stream, LinePos, Line] ] | |
317 | ; [ 'Stream ~w:~d:~d '-[Stream, Line, LinePos] ] | |
318 | 318 | ). |
319 | 319 | swi_location(_) --> |
320 | 320 | []. |
5 | 5 | |
6 | 6 | SWI-Prolog 6.6 |
7 | 7 | Reference Manual |
8 | _U_p_d_a_t_e_d _f_o_r _v_e_r_s_i_o_n _6_._6_._5_, _A_p_r_i_l _2_0_1_4 | |
8 | _U_p_d_a_t_e_d _f_o_r _v_e_r_s_i_o_n _6_._6_._6_, _M_a_y _2_0_1_4 | |
9 | 9 | |
10 | 10 | _J_a_n _W_i_e_l_e_m_a_k_e_r |
11 | 11 | J.Wielemaker@vu.nl |
6928 | 6928 | |
6929 | 6929 | |
6930 | 6930 | ooppeenn((_+_S_r_c_D_e_s_t_, _+_M_o_d_e_, _-_S_t_r_e_a_m_, _+_O_p_t_i_o_n_s)) _[_I_S_O_] |
6931 | ISO compliant predicate to open a stream. _S_r_c_D_e_s_t is either an | |
6932 | atom specifying a file, or a term `pipe(_C_o_m_m_a_n_d)', like see/1 and | |
6933 | tell/1. _M_o_d_e is one of read, write, append or update. Mode | |
6934 | append opens the file for writing, positioning the file pointer at | |
6935 | the end. Mode update opens the file for writing, positioning the | |
6936 | file pointer at the beginning of the file without truncating the | |
6937 | file. _S_t_r_e_a_m is either a variable, in which case it is bound to an | |
6938 | integer identifying the stream, or an atom, in which case this atom | |
6939 | will be the stream identifier. The _O_p_t_i_o_n_s list can contain the | |
6940 | following options: | |
6931 | True when _S_r_c_D_e_s_t can be opened in _M_o_d_e and _S_t_r_e_a_m is an I/O | |
6932 | stream to/from the object. _S_r_c_D_e_s_t is normally the name of a | |
6933 | file, represented as an atom or string. _M_o_d_e is one of read, | |
6934 | write, append or update. Mode append opens the file for writing, | |
6935 | positioning the file pointer at the end. Mode update opens the | |
6936 | file for writing, positioning the file pointer at the beginning of | |
6937 | the file without truncating the file. _S_t_r_e_a_m is either a variable, | |
6938 | in which case it is bound to an integer identifying the stream, or | |
6939 | an atom, in which case this atom will be the stream identifier. | |
6940 | ||
6941 | SWI-Prolog also allows _S_r_c_D_e_s_t to be a term pipe(_C_o_m_m_a_n_d). In | |
6942 | this form, _C_o_m_m_a_n_d is started as a child process and if _M_o_d_e is | |
6943 | write, output written to _S_t_r_e_a_m is sent to the standard input of | |
6944 | _C_o_m_m_a_n_d. Viso versa, if _M_o_d_e is read, data written by _C_o_m_m_a_n_d to | |
6945 | the standard output may be read from _S_t_r_e_a_m. On Unix systems, | |
6946 | _C_o_m_m_a_n_d is handed to popen() which hands it to the Unix shell. On | |
6947 | Windows, _C_o_m_m_a_n_d is executed directly. See also process_create/3 | |
6948 | from process. | |
6949 | ||
6950 | The following _O_p_t_i_o_n_s are recognised by open/4: | |
6941 | 6951 | |
6942 | 6952 | ttyyppee((_T_y_p_e)) |
6943 | 6953 | Using type text (default), Prolog will write a text file in an |
11372 | 11382 | ||________delete_file(File).______________%_Unix-only_______________ || |
11373 | 11383 | |
11374 | 11384 | Temporary files created using this call are removed if the |
11375 | Prolog process terminates. Calling delete_file/1 using _F_i_l_e_N_a_m_e | |
11376 | removes the file and removes the entry from the administration of | |
11377 | files-to-be-deleted. | |
11385 | Prolog process terminates _g_r_a_c_e_f_u_l_l_y. Calling delete_file/1 | |
11386 | using _F_i_l_e_N_a_m_e removes the file and removes the entry from the | |
11387 | administration of files-to-be-deleted. | |
11378 | 11388 | |
11379 | 11389 | |
11380 | 11390 | mmaakkee__ddiirreeccttoorryy((_+_D_i_r_e_c_t_o_r_y)) |
20780 | 20790 | the (implied) constraint F #\= 0 before the recursive call. Otherwise, |
20781 | 20791 | the query n_factorial(N, 0) is the only non-terminating case of this |
20782 | 20792 | kind. |
20783 | ||
20784 | ||
20785 | 1111..77..00..77 AAddvvaanncceedd ttooppiiccss | |
20793 | ||
20794 | <### Advanced topics {#clpfd-advanced-topics} | |
20786 | 20795 | |
20787 | 20796 | This library uses goal_expansion/2 to rewrite constraints at |
20788 | 20797 | compilation time. The expansion's aim is to transparently bring |
20813 | 20822 | |:- use_module(library(clpfd)). | |
20814 | 20823 | | | |
20815 | 20824 | |:- multifile clpfd:run_propagator/2. | |
20816 | ||
20817 | 20825 | | | |
20818 | 20826 | |oneground(X, Y, Z) :- | |
20827 | ||
20819 | 20828 | | clpfd:make_propagator(oneground(X, Y, Z), Prop), | |
20820 | 20829 | | clpfd:init_propagator(X, Prop), | |
20821 | 20830 | | clpfd:init_propagator(Y, Prop), | |
20822 | 20831 | | clpfd:trigger_once(Prop). | |
20823 | 20832 | | | |
20824 | 20833 | |clpfd:run_propagator(oneground(X, Y, Z), MState) :- | |
20825 | ||
20826 | 20834 | | ( integer(X) -> clpfd:kill(MState), Z = 1 | |
20835 | ||
20827 | 20836 | | ; integer(Y) -> clpfd:kill(MState), Z = 1 | |
20828 | 20837 | | ; true | |
20829 | 20838 | ||_______)._____________________________________________________________ || |
20845 | 20854 | |
20846 | 20855 | ________________________________________________________________________| | |
20847 | 20856 | |?- oneground(X, Y, Z), Y = 5. | |
20848 | ||
20849 | 20857 | |Y = 5, | |
20850 | 20858 | |Z = 1, | |
20859 | ||
20851 | 20860 | |X|in_inf..sup._________________________________________________________ | | |
20852 | 20861 | |
20853 | 20862 | |
22053 | 22062 | |
22054 | 22063 | |
22055 | 22064 | sseelleecctt((_?_X_, _?_X_L_i_s_t_, _?_Y_, _?_Y_L_i_s_t)) _[_n_o_n_d_e_t_] |
22056 | True if _X_L_i_s_t is unifiable with _Y_L_i_s_t apart a single element at the | |
22057 | same position that is unified with _X in _X_L_i_s_t and with _Y in _Y_L_i_s_t. | |
22058 | A typical use for this predicate is to _r_e_p_l_a_c_e an element, as shown | |
22059 | in the example below. All possible substitutions are performed on | |
22065 | Select from two lists at the same positon. True if _X_L_i_s_t is | |
22066 | unifiable with _Y_L_i_s_t apart a single element at the same position | |
22067 | that is unified with _X in _X_L_i_s_t and with _Y in _Y_L_i_s_t. A typical | |
22068 | use for this predicate is to _r_e_p_l_a_c_e an element, as shown in | |
22069 | the example below. All possible substitutions are performed on | |
22060 | 22070 | backtracking. |
22061 | 22071 | |
22062 | 22072 | ____________________________________________________________________| | |
22753 | 22763 | line of help text. Similarly, suppressing an option in a cluttered |
22754 | 22764 | interface amounts to commenting out the flags. |
22755 | 22765 | |
22756 | opt_parse/5 allows more control through an ad- | |
22757 | ditional argument list. For instance, | |
22758 | opt_parse(ExampleOptsSpec, ExampleArgs, Opts, PositionalArgs, [output_functor(appl_config)]) | |
22759 | would instead return | |
22766 | opt_parse/5 allows more control through an additional argument list as | |
22767 | shown in the example below. | |
22760 | 22768 | |
22761 | 22769 | ________________________________________________________________________| | |
22762 | 22770 | |
22771 | |?- opt_parse(ExampleOptsSpec, ExampleArgs, Opts, PositionalArgs, | | |
22772 | | [ output_functor(appl_config) | | |
22773 | | ]). | | |
22774 | | | | |
22763 | 22775 | |Opts = [ appl_config(verbose, 2), | |
22764 | 22776 | | , appl_config(label, 'REPORT') | |
22777 | ||
22765 | 22778 | | ... | |
22766 | 22779 | ||_________]____________________________________________________________ || |
22767 | 22780 | |
22971 | 22984 | |
22972 | 22985 | |
22973 | 22986 | oorrdd__sseelleeccttcchhkk((_+_I_t_e_m_, _?_S_e_t_1_, _?_S_e_t_2)) _[_s_e_m_i_d_e_t_] |
22974 | Is true when select(Item, Set1, Set2) and _S_e_t_1, _S_e_t_2 are both | |
22975 | sorted lists without duplicates. This implementation is only | |
22976 | expected to work for _I_t_e_m ground and either _S_e_t_1 or _S_e_t_2 ground. | |
22977 | The "chk" suffix is meant to remind you of memberchk/2, which also | |
22978 | expects its first argument to be ground. ord_selectchk(X, S, T) | |
22979 | => ord_memberchk(X, S) & \+ ord_memberchk(X, T). | |
22987 | Selectchk/3, specialised for ordered sets. Is true when | |
22988 | select(Item, Set1, Set2) and _S_e_t_1, _S_e_t_2 are both sorted lists | |
22989 | without duplicates. This implementation is only expected to work | |
22990 | for _I_t_e_m ground and either _S_e_t_1 or _S_e_t_2 ground. The "chk" | |
22991 | suffix is meant to remind you of memberchk/2, which also expects | |
22992 | its first argument to be ground. ord_selectchk(X, S, T) => | |
22993 | ord_memberchk(X, S) & \+ ord_memberchk(X, T). | |
22980 | 22994 | |
22981 | 22995 | aauutthhoorr Richard O'Keefe |
22982 | 22996 | |
23186 | 23200 | |
23187 | 23201 | |
23188 | 23202 | llaazzyy__lliisstt__llooccaattiioonn((_-_L_o_c_a_t_i_o_n)) // _[_d_e_t_] |
23189 | True when _L_o_c_a_t_i_o_n is an (error) location term that represents the | |
23190 | current location in the DCG list. | |
23203 | Determine current (error) location in a lazy list. True when | |
23204 | _L_o_c_a_t_i_o_n is an (error) location term that represents the current | |
23205 | location in the DCG list. | |
23191 | 23206 | |
23192 | 23207 | ___________________________________________________________Arguments_ |
23193 | 23208 | _L_o_c_a_t_i_o_n is a term file(Name, Line, LinePos, CharNo) |
24616 | 24631 | |
24617 | 24632 | |
24618 | 24633 | ccrreeaattee__ppooooll((_+_P_o_o_l_N_a_m_e)) _[_s_e_m_i_d_e_t_,_m_u_l_t_i_f_i_l_e_] |
24619 | This hook is called if thread_create_in_pool/4 discovers that | |
24620 | the thread pool does not exist. If the hook succeeds, | |
24621 | thread_create_in_pool/4 retries creating the thread. For example, | |
24622 | we can use the following declaration to create threads in the pool | |
24623 | media, which holds a maximum of 20 threads. | |
24634 | Hook to create a thread pool lazily. The hook is called if | |
24635 | thread_create_in_pool/4 discovers that the thread pool does not | |
24636 | exist. If the hook succeeds, thread_create_in_pool/4 retries | |
24637 | creating the thread. For example, we can use the following | |
24638 | declaration to create threads in the pool media, which holds a | |
24639 | maximum of 20 threads. | |
24624 | 24640 | |
24625 | 24641 | ____________________________________________________________________| | |
24626 | 24642 | | :- multifile thread_pool:create_pool/1. | |
24627 | 24643 | | | |
24628 | ||
24629 | 24644 | | thread_pool:create_pool(media) :- | |
24645 | ||
24630 | 24646 | ||____thread_pool_create(media,_20,_[]).____________________________ || |
24631 | 24647 | |
24632 | 24648 | |
27323 | 27339 | |
27324 | 27340 | same_length/2 Is true when List1 and List2 are lists with the same number of elements. |
27325 | 27341 | select/3 Is true when List1, with Elem removed, results in List2. |
27326 | select/4 True if XList is unifiable with YList apart a single element at the same position that is unified with X in XList and with Y in YList. | |
27342 | select/4 Select from two lists at the same positon. | |
27327 | 27343 | selectchk/3 Semi-deterministic removal of first element in List that unifies with Elem. |
27328 | 27344 | selectchk/4 Semi-deterministic version of select/4. |
27329 | 27345 | subset/2 True if all elements of SubSet belong to Set as well. |
27381 | 27397 | ord_intersection/3 Intersection holds the common elements of Set1 and Set2. |
27382 | 27398 | ord_intersection/4 Intersection and difference between two ordered sets. |
27383 | 27399 | ord_memberchk/2 True if Element is a member of OrdSet, compared using ==. |
27384 | ord_selectchk/3 Is true when select(Item, Set1, Set2) and Set1, Set2 are both sorted lists without duplicates. | |
27400 | ord_selectchk/3 Selectchk/3, specialised for ordered sets. | |
27385 | 27401 | ord_seteq/2 True if Set1 and Set2 have the same elements. |
27386 | 27402 | ord_subset/2 Is true if all elements of Sub are in Super. |
27387 | 27403 | |
27459 | 27475 | phrase_from_stream/2 Helper for phrase_from_file/3. |
27460 | 27476 | stream_to_lazy_list/2 Create a lazy list representing the character codes in Stream. |
27461 | 27477 | lazy_list_character_count/3True when CharCount is the current character count in the Lazy list. |
27462 | lazy_list_location/3 True when Location is an (error) location term that represents the current location in the DCG list. | |
27478 | lazy_list_location/3 Determine current (error) location in a lazy list. | |
27463 | 27479 | syntax_error/3 Throw the syntax error Error at the current location of the input. |
27464 | 27480 | |
27465 | 27481 | |
27635 | 27651 | |
27636 | 27652 | 1166..22..2288 lliibbrraarryy((tthhrreeaadd__ppooooll)) |
27637 | 27653 | |
27638 | create_pool/1 This hook is called if thread_create_in_pool/4 discovers that the thread pool does not exist. | |
27654 | create_pool/1 Hook to create a thread pool lazily. | |
27639 | 27655 | current_thread_pool/1 True if Name refers to a defined thread pool. |
27640 | 27656 | thread_create_in_pool/4Create a thread in Pool. |
27641 | 27657 | thread_pool_create/3 Create a pool of threads. |
27893 | 27909 | |
27894 | 27910 | [Wielemaker & Angelopoulos, ] Jan Wielemaker and Nicos Angelopoulos. |
27895 | 27911 | |
27896 | 1672 | |
27912 | 1671 | |
27897 | 27913 | |
27898 | 27914 | |
27899 | 27915 | Index |
27908 | 27924 | /\/2, 520 PL_term_type(), 943 |
27909 | 27925 | =\=/2, 480 PL_thread_at_exit(), 883 |
27910 | 27926 | |/2, 217 PL_thread_attach_engine(), 881 |
27911 | #/\/2, 1292 PL_thread_destroy_engine(), 882 | |
27912 | #=/2, 1284 PL_thread_self(), 879 | |
27913 | #<==>/2, 1289 PL_throw(), 1109 | |
27914 | #>=/2, 1282 PL_toplevel(), 1156 | |
27915 | #>/2, 1286 PL_type_error(), 1062 | |
27916 | #=</2, 1283 PL_unify(), 1023 | |
27917 | #</2, 1287 PL_unify_arg(), 1038 | |
27918 | #\=/2, 1285 PL_unify_atom(), 1024 | |
27919 | #\/1, 1288 PL_unify_atom_chars(), 1027 | |
27927 | #/\/2, 1291 PL_thread_destroy_engine(), 882 | |
27928 | #=/2, 1283 PL_thread_self(), 879 | |
27929 | #<==>/2, 1288 PL_throw(), 1109 | |
27930 | #>=/2, 1281 PL_toplevel(), 1156 | |
27931 | #>/2, 1285 PL_type_error(), 1062 | |
27932 | #=</2, 1282 PL_unify(), 1023 | |
27933 | #</2, 1286 PL_unify_arg(), 1038 | |
27934 | #\=/2, 1284 PL_unify_atom(), 1024 | |
27935 | #\/1, 1287 PL_unify_atom_chars(), 1027 | |
27920 | 27936 | ,/2, 215 PL_unify_atom_nchars(), 984 |
27921 | #\//2, 1293 PL_unify_blob(), 1076 | |
27922 | {}/1, 1315 PL_unify_bool(), 1025 | |
27937 | #\//2, 1292 PL_unify_blob(), 1076 | |
27938 | {}/1, 1314 PL_unify_bool(), 1025 | |
27923 | 27939 | !/0, 214 PL_unify_bool_ex(), 1058 |
27924 | 27940 | /, 79 PL_unify_chars(), 1026 |
27925 | 27941 | //2, 491 PL_unify_float(), 1033 |
27932 | 27948 | ///2, 494 PL_unify_list_nchars(), 987 |
27933 | 27949 | ->/2, 218 PL_unify_list_ncodes(), 986 |
27934 | 27950 | =</2, 478 PL_unify_mpq(), 1084 |
27935 | #<==/2, 1291 PL_unify_mpz(), 1083 | |
27951 | #<==/2, 1290 PL_unify_mpz(), 1083 | |
27936 | 27952 | <</2, 518 PL_unify_nil(), 1037 |
27937 | 27953 | </2, 477 PL_unify_nil_ex(), 1057 |
27938 | 27954 | -/1, 486 PL_unify_pointer(), 1034 |
27945 | 27961 | +/1, 487 PL_uninstantiation_error(), 1060 |
27946 | 27962 | +/2, 488 PL_unregister_atom(), 940 |
27947 | 27963 | **/2, 541 PL_unregister_blob_type(), 1073 |
27948 | #==>/2, 1290 PL_warning(), 1132 | |
27964 | #==>/2, 1289 PL_warning(), 1132 | |
27949 | 27965 | >>/2, 517 PL_wchars_to_term(), 1041 |
27950 | 27966 | ;/2, 216 plus/3, 474 |
27951 | 27967 | *->/2, 219 PLVERSION, 1176 |
27952 | 27968 | =@=/2, 203 popcount/1, 554 |
27953 | 27969 | \=@=/2, 204 portable |
27954 | @>=/2, 199 prolog code, 1620 | |
27970 | @>=/2, 199 prolog code, 1619 | |
27955 | 27971 | @>/2, 198 portray/1, 32, 81, 384, 394, 396, |
27956 | */2, 490 1091, 1150, 1609 | |
27972 | */2, 490 1091, 1150, 1608 | |
27957 | 27973 | @=</2, 197 portray_clause/1, 169, 171, 172 |
27958 | 27974 | @</2, 196 portray_clause/2, 171, 172, 411 |
27959 | 27975 | =../2, 409 portray_text _l_i_b_r_a_r_y, 394 |
27960 | 27976 | \, 79 portray_text/1, 255 |
27961 | 27977 | _PL_get_arg(), 975 powm/3, 543 |
27962 | 64-bits precedence, 1625 | |
27978 | 64-bits precedence, 1624 | |
27963 | 27979 | platforms, 72 pred/1, 738 |
27964 | 27980 | |
27965 | abolish/1, 257, 258 predicate,d1625ynamic, 1625 | |
27966 | abolish/2, 258 exported, 1625 | |
27967 | abolish/[1 imported, 1625 | |
27968 | 2], 41 predicate indicator, 108, 1625 | |
27969 | abort/0, 20, 32, 306, 311, 318, predicate_options/3, 1452 | |
27981 | abolish/1, 257, 258 predicate,d1624ynamic, 1624 | |
27982 | abolish/2, 258 exported, 1624 | |
27983 | abolish/[1 imported, 1624 | |
27984 | 2], 41 predicate indicator, 108, 1624 | |
27985 | abort/0, 20, 32, 306, 311, 318, predicate_options/3, 1451 | |
27970 | 27986 | 655, 809, 861, 1134, 1145, predicate_property/2, 114, 223, |
27971 | 1599 288, 295, 297, 732, 758 | |
27987 | 1598 288, 295, 297, 732, 758 | |
27972 | 27988 | abs/1, 498 predsort/3, 566 |
27973 | absolute_file_name/2, 7, 111, 123, prefix/2, 1358 | |
27989 | absolute_file_name/2, 7, 111, 123, prefix/2, 1357 | |
27974 | 27990 | 639, 641, 651, 1189 print/1, 384, 394, 396, 577, 582, |
27975 | absolute_file_name/3, 41, 44, 103, 1091, 1638 | |
27991 | absolute_file_name/3, 41, 44, 103, 1091, 1637 | |
27976 | 27992 | 110, 120, 126, 607, 639, print/2, 395 |
27977 | 640, 1128, 1129, 1515, 1516 print_message/2, 41, 44, 111, 128, | |
27993 | 640, 1128, 1129, 1514, 1515 print_message/2, 41, 44, 111, 128, | |
27978 | 27994 | absolute_file_name/[2 238--241, 248, 400, 704, |
27979 | 3], 41, 119, 640 825, 827, 1638 | |
27995 | 3], 41, 119, 640 825, 827, 1637 | |
27980 | 27996 | access_file/2, 41, 629, 640 print_message_lines/3, 239--241, |
27981 | acos/1, 528 244, 248, 1638 | |
27982 | acosh/1, 536 priority, 1625 | |
27983 | acquire(), 1069 process _l_i_b_r_a_r_y, 593 | |
27984 | acyclic_term/1, 59, 188, 189, 202 process_create/3, 593, 601 | |
27985 | add_edges/3, 1556 profile file, 14 | |
27997 | acos/1, 528 244, 248, 1637 | |
27998 | acosh/1, 536 priority, 1624 | |
27999 | acquire(), 1069 process _l_i_b_r_a_r_y, 306, 593 | |
28000 | acyclic_term/1, 59, 188, 189, 202 process_create/3, 306, 593, 601 | |
28001 | add_edges/3, 1555 profile file, 14 | |
27986 | 28002 | add_import_module/3, 743, 745, 760 profile/1, 691, 875, 1158 |
27987 | add_nb_set/2, 1389 profile/3, 692 | |
27988 | add_nb_set/3, 1389--1391 profiler/2, 694 | |
27989 | add_vertices/3, 1554 profiling | |
28003 | add_nb_set/2, 1388 profile/3, 692 | |
28004 | add_nb_set/3, 1388--1390 profiler/2, 694 | |
28005 | add_vertices/3, 1553 profiling | |
27990 | 28006 | agent, 1236 foreign code, 1177 |
27991 | aggregate/3, 732, 1196 program, 1625 | |
28007 | aggregate/3, 732, 1196 program, 1624 | |
27992 | 28008 | aggregate/4, 732, 1197 prolog/0, 20, 319, 654, 658, 659, |
27993 | aggregate_all/3, 1198 737, 1156, 1593 | |
27994 | aggregate_all/4, 1199 prolog/assertion_failed, 1349 | |
27995 | all_different/1, 1278 prolog/debug_print_hook, 1347 | |
27996 | all_distinct/1, 1279 prolog:break_hook/6, 1603 | |
27997 | AMD64, 73 prolog:called_by/2, 1486 | |
27998 | anonymous prolog:comment_hook/3, 1614 | |
27999 | variable, 58 prolog:debug_control_hook/1, 1610 | |
28000 | anonymous variable, 1625 prolog:help_hook/1, 1611 | |
28009 | aggregate_all/3, 1198 737, 1156, 1592 | |
28010 | aggregate_all/4, 1199 prolog/assertion_failed, 1348 | |
28011 | all_different/1, 1277 prolog/debug_print_hook, 1346 | |
28012 | all_distinct/1, 1278 prolog:break_hook/6, 1602 | |
28013 | AMD64, 73 prolog:called_by/2, 1485 | |
28014 | anonymous prolog:comment_hook/3, 1613 | |
28015 | variable, 58 prolog:debug_control_hook/1, 1609 | |
28016 | anonymous variable, 1624 prolog:help_hook/1, 1610 | |
28001 | 28017 | ansi_format/3, 243 prolog:message_line_element/2, 244 |
28002 | ansi_term _l_i_b_r_a_r_y, 41, 240, 244 prolog_breakpoints _l_i_b_r_a_r_y, 1602 | |
28003 | append/1, 320, 324 prolog_choice_attribute/3, 1590, | |
28004 | append/2, 730, 1357 1592, 1599 | |
28005 | append/3, 301, 432, 1356 prolog_codewalk _l_i_b_r_a_r_y, 297 | |
28006 | apply/2, 224 prolog_current_choice/1, 1590, 1592, | |
28007 | apply_macros _l_i_b_r_a_r_y, 255 1595 | |
28008 | apropos/1, 26, 27, 44, 1611, 1638 prolog_current_frame/1, 1589, 1591 | |
28009 | arg/3, 408 prolog_cut_to/1, 1595 | |
28018 | ansi_term _l_i_b_r_a_r_y, 41, 240, 244 prolog_breakpoints _l_i_b_r_a_r_y, 1601 | |
28019 | append/1, 320, 324 prolog_choice_attribute/3, 1589, | |
28020 | append/2, 730, 1356 1591, 1598 | |
28021 | append/3, 301, 432, 1355 prolog_codewalk _l_i_b_r_a_r_y, 297 | |
28022 | apply/2, 224 prolog_current_choice/1, 1589, 1591, | |
28023 | apply_macros _l_i_b_r_a_r_y, 255 1594 | |
28024 | apropos/1, 26, 27, 44, 1610, 1637 prolog_current_frame/1, 1588, 1590 | |
28025 | arg/3, 408 prolog_cut_to/1, 1594 | |
28010 | 28026 | arithmetic_function/1, 1107 prolog_edit:edit_command/2, 166 |
28011 | arity, 1625 prolog_edit:edit_source/1, 165 | |
28027 | arity, 1624 prolog_edit:edit_source/1, 165 | |
28012 | 28028 | asin/1, 527 prolog_edit:load/0, 167 |
28013 | 28029 | asinh/1, 535 prolog_edit:locate/2, 164 |
28014 | assert, 1625 prolog_edit:locate/3, 163 | |
28030 | assert, 1624 prolog_edit:locate/3, 163 | |
28015 | 28031 | assert/1, 110, 256, 263, 265, 278, prolog_exception_hook/4, 236, 704, |
28016 | 284, 285, 297, 723, 731, 1604, 1605 | |
28032 | 284, 285, 297, 723, 731, 1603, 1604 | |
28017 | 28033 | 761, 786, 852 prolog_file_type/2, 110, 121, 640 |
28018 | assert/2, 41, 268, 275, 300 prolog_frame_attribute/3, 302, 1591, | |
28019 | assert_predicate_options/4, 1453 1599, 1605 | |
28034 | assert/2, 41, 268, 275, 300 prolog_frame_attribute/3, 302, 1590, | |
28035 | assert_predicate_options/4, 1452 1598, 1604 | |
28020 | 28036 | asserta/1, 18, 59, 60, 118, 203, prolog_ide _c_l_a_s_s, 105 |
28021 | 28037 | 263, 264, 266, 267, 733, prolog_ide/1, 104, 105 |
28022 | 735, 1625 prolog_list_goal/1, 1609 | |
28038 | 735, 1624 prolog_list_goal/1, 1608 | |
28023 | 28039 | asserta/2, 266, 275 prolog_load_context/2, 126, 127, |
28024 | assertion/1, 1348, 1603 399, 1621 | |
28025 | assertz/1, 118, 259, 264, 265, 302, prolog_load_file/2, 111, 1612, 1613 | |
28026 | 1625 prolog_server _l_i_b_r_a_r_y, 304, 319 | |
28027 | assertz/2, 267, 268, 275 prolog_skip_frame/1, 1600, 1601 | |
28028 | assignment/2, 1529 prolog_skip_level/2, 1600, 1601 | |
28029 | assoc _l_i_b_r_a_r_y, 1220, 1387 prolog_stack _l_i_b_r_a_r_y, 1591, 1605 | |
28040 | assertion/1, 1347, 1602 399, 1620 | |
28041 | assertz/1, 118, 259, 264, 265, 302, prolog_load_file/2, 111, 1611, 1612 | |
28042 | 1624 prolog_server _l_i_b_r_a_r_y, 304, 319 | |
28043 | assertz/2, 267, 268, 275 prolog_skip_frame/1, 1599, 1600 | |
28044 | assignment/2, 1528 prolog_skip_level/2, 1599, 1600 | |
28045 | assoc _l_i_b_r_a_r_y, 1220, 1386 prolog_stack _l_i_b_r_a_r_y, 1590, 1604 | |
28030 | 28046 | assoc_to_keys/2, 1222 prolog_stack_property/2, 704, 705 |
28031 | 28047 | assoc_to_list/2, 1221 prolog_to_os_filename/2, 79, 607, |
28032 | 28048 | assoc_to_values/2, 1223 631, 641, 645 |
28033 | 28049 | at_end_of_stream/0, 377 prolog_trace_interception/4, 94, |
28034 | at_end_of_stream/1, 378, 382 670, 704, 1591, 1592, 1599 | |
28050 | at_end_of_stream/1, 378, 382 670, 704, 1590, 1591, 1598 | |
28035 | 28051 | at_end_of_stream/[0 prolog_xref _l_i_b_r_a_r_y, 102, 724 |
28036 | 1], 311, 1511 prompt | |
28052 | 1], 311, 1510 prompt | |
28037 | 28053 | at_halt/1, 41, 128, 129, 657, 831, alternatives, 41 |
28038 | 1147, 1157, 1618, 1638 prompt/2, 403--405, 825 | |
28054 | 1147, 1157, 1617, 1637 prompt/2, 403--405, 825 | |
28039 | 28055 | atan/1, 529 prompt1/1, 405 |
28040 | atan/2, 531 proper_length/2, 1370 | |
28041 | atan2/2, 530 property, 1625 | |
28056 | atan/2, 531 proper_length/2, 1369 | |
28057 | atan2/2, 530 property, 1624 | |
28042 | 28058 | atanh/1, 537 protocol/1, 662, 663, 665 |
28043 | atom, 1625 protocola/1, 663, 665 | |
28059 | atom, 1624 protocola/1, 663, 665 | |
28044 | 28060 | atom/1, 181, 941 protocolling/1, 665 |
28045 | atom_chars/2, 41, 109, 335, 362, prove, 1625 | |
28046 | 422, 424, 426, 448 public list, 1625 | |
28061 | atom_chars/2, 41, 109, 335, 362, prove, 1624 | |
28062 | 422, 424, 426, 448 public list, 1624 | |
28047 | 28063 | atom_codes/2, 41, 109, 335, 422-- public/1, 283, 288, 297, 1183 |
28048 | 28064 | 424, 428, 429, 448 put/1, 345, 346 |
28049 | 28065 | atom_concat/3, 432, 462 put/2, 346 |
28071 | 28087 | autoload/0, 49, 115, 1181, 1183, 104, 1180, 1181, 1187 |
28072 | 28088 | 1263 qsave_program/[1 |
28073 | 28089 | autoload_path/1, 46 2], 18, 38, 41, 297, 896, 1153, |
28074 | automaton/3, 1303 1163, 1183, 1185 | |
28075 | automaton/8, 1304 quasi_quotation_syntax/1, 297, 1490 | |
28076 | ||
28077 | b_getval/2, 788, 790 quasi_quotation_syntax_error/1,q1491uasi_quotations _l_i_b_r_a_r_y, 1596 | |
28078 | b_setval/2, 786, 787, 1607 query, 1625 | |
28079 | backtracking, 1625 quiet, 18 | |
28090 | automaton/3, 1302 1163, 1183, 1185 | |
28091 | automaton/8, 1303 quasi_quotation_syntax/1, 297, 1489 | |
28092 | ||
28093 | b_getval/2, 788, 790 quasi_quotation_syntax_error/1,q1490uasi_quotations _l_i_b_r_a_r_y, 1595 | |
28094 | b_setval/2, 786, 787, 1606 query, 1624 | |
28095 | backtracking, 1624 quiet, 18 | |
28080 | 28096 | bagof/3, 59, 568, 570, 571, 732, |
28081 | 1638 random _l_i_b_r_a_r_y, 556 | |
28082 | bb_inf/3, 1323 random/1, 504, 1493 | |
28083 | bb_inf/4, 1322 random/3, 1495, 1496 | |
28084 | bb_inf/5, 1321 random_between/3, 1494 | |
28097 | 1637 random _l_i_b_r_a_r_y, 556 | |
28098 | bb_inf/3, 1322 random/1, 504, 1492 | |
28099 | bb_inf/4, 1321 random/3, 1494, 1495 | |
28100 | bb_inf/5, 1320 random_between/3, 1493 | |
28085 | 28101 | between/3, 472 random_float/0, 505 |
28086 | binding, 1625 random_member/2, 1503 | |
28087 | bits random_perm2/4, 1502 | |
28088 | 64, 71 random_permutation/2, 1508, 1509 | |
28102 | binding, 1624 random_member/2, 1502 | |
28103 | bits random_perm2/4, 1501 | |
28104 | 64, 71 random_permutation/2, 1507, 1508 | |
28089 | 28105 | blackboard, 1236 random_property/1, 556, 557 |
28090 | blob/2, 182, 305 random_select/3, 1504, 1505 | |
28091 | body, 1625 randseq/3, 1507 | |
28092 | Boehm GC, 1170 randset/3, 1506 | |
28106 | blob/2, 182, 305 random_select/3, 1503, 1504 | |
28107 | body, 1624 randseq/3, 1506 | |
28108 | Boehm GC, 1170 randset/3, 1505 | |
28093 | 28109 | BOM, 65 rational |
28094 | 28110 | break/0, 20, 32, 41, 654, 809, 1134 number, 483 |
28095 | 28111 | broadcast, 1236 rational trees, 59 |
28096 | 28112 | broadcast _l_i_b_r_a_r_y, 1236 rational/1, 178, 509 |
28097 | 28113 | broadcast/1, 1237, 1238 rational/3, 179, 483 |
28098 | 28114 | broadcast_request/1, 1238 rationalize/1, 510 |
28099 | built-in predicate, 1625 rb_new/1, 41 | |
28115 | built-in predicate, 1624 rb_new/1, 41 | |
28100 | 28116 | Byte Order Mark, 65 rbtrees _l_i_b_r_a_r_y, 41 |
28101 | 28117 | byte_count/2, 316, 338 RDF |
28102 | 28118 | call/1, 102, 186, 214, 222, 234, rdimemoryvusage,/742, 496 |
28103 | 674, 688, 696, 698, 723, reachable/3, 1567 | |
28104 | 781, 1085, 1603 read/1, 41, 69, 304--306, 355, 391, | |
28119 | 674, 688, 696, 698, 723, reachable/3, 1566 | |
28120 | 781, 1085, 1602 read/1, 41, 69, 304--306, 355, 391, | |
28105 | 28121 | call/2, 186, 223 397, 400, 404, 457, 684, |
28106 | call/3, 384 794, 1516, 1638 | |
28122 | call/3, 384 794, 1515, 1637 | |
28107 | 28123 | call/[2-8], 223 read/2, 337, 398 |
28108 | 28124 | call_cleanup/2, 229, 231, 232, 335, read_clause/3, 58, 399, 684 |
28109 | 1593, 1624 read_file_to_codes/3, 1515 | |
28110 | call_cleanup/3, 232 read_file_to_terms/3, 1516 | |
28125 | 1592, 1623 read_file_to_codes/3, 1514 | |
28126 | call_cleanup/3, 232 read_file_to_terms/3, 1515 | |
28111 | 28127 | call_residue_vars/2, 785 read_from_atom/3, 431 |
28112 | 28128 | call_shared_object_function/2, 910 read_from_chars/2, 1254 |
28113 | 28129 | call_with_depth_limit/3, 228 read_history/6, 403 |
28114 | call_with_time_limit/2, 229 read_line_to_codes/2, 1511, 1512 | |
28115 | callable/1, 186, 950, 1476 read_line_to_codes/3, 1511, 1512 | |
28130 | call_with_time_limit/2, 229 read_line_to_codes/2, 1510, 1511 | |
28131 | callable/1, 186, 950, 1475 read_line_to_codes/3, 1510, 1511 | |
28116 | 28132 | cancel_halt/1, 128, 129, 657, 1157 read_link/3, 646 |
28117 | 28133 | catch/3, 233--236, 400, 655, 696, read_pending_input/3, 382 |
28118 | 825, 833, 834, 1592, 1605-- read_stream_to_codes/2, 1513, 1514 | |
28119 | 1607, 1638 read_stream_to_codes/3, 1514 | |
28134 | 825, 833, 834, 1591, 1604-- read_stream_to_codes/2, 1512, 1513 | |
28135 | 1606, 1637 read_stream_to_codes/3, 1513 | |
28120 | 28136 | ceil/1, 516 read_term/2, 41, 126, 145, 384, |
28121 | ceiling/1, 515 400, 401, 403, 431, 1614 | |
28122 | chain/2, 1307 read_term/3, 58, 384, 399--402, | |
28123 | char_code/2, 109, 425 468, 659, 1614 | |
28137 | ceiling/1, 515 400, 401, 403, 431, 1613 | |
28138 | chain/2, 1306 read_term/3, 58, 384, 399--402, | |
28139 | char_code/2, 109, 425 468, 659, 1613 | |
28124 | 28140 | char_conversion/2, 41, 468, 469 read_term/[2 |
28125 | 28141 | char_type/2, 57, 440, 447--450 3], 400 |
28126 | 28142 | character set, 53 read_term_from_atom/3, 402 |
28127 | 28143 | character_count/2, 316, 338, 339 read_term_from_chars/3, 1255 |
28128 | 28144 | chdir/1, 651, 652 readutil _l_i_b_r_a_r_y, 83 |
28129 | 28145 | check _l_i_b_r_a_r_y, 117, 297 reconsult, 110 |
28130 | check/0, 115, 1260, 1261 record _l_i_b_r_a_r_y, 1517 | |
28131 | check_predicate_option/3, 1455 record/1, 1517, 1518 | |
28132 | check_predicate_options/0, 1458 recorda/2, 270 | |
28146 | check/0, 115, 1260, 1261 record _l_i_b_r_a_r_y, 1516 | |
28147 | check_predicate_option/3, 1454 record/1, 1516, 1517 | |
28148 | check_predicate_options/0, 1457 recorda/2, 270 | |
28133 | 28149 | chr _l_i_b_r_a_r_y, 806, 810 recorda/3, 59, 269, 271, 275, 294, |
28134 | 28150 | chr_constraint/1, 804, 818 786, 1121, 1122, 1125 |
28135 | 28151 | chr_leash/1, 813 recorded/2, 274 |
28137 | 28153 | chr_option/2, 800, 818 recordz/2, 272 |
28138 | 28154 | chr_show_store/1, 814 recordz/3, 59, 271, 275 |
28139 | 28155 | chr_trace/0, 809, 811 redefine_system_predicate/1, 260, |
28140 | chr_type/1, 805 1625 | |
28141 | circuit/1, 1300 reexport/1, 110, 111, 739, 1620 | |
28142 | clause, 1625 reexport/2, 110, 111, 740, 1620 | |
28156 | chr_type/1, 805 1624 | |
28157 | circuit/1, 1299 reexport/1, 110, 111, 739, 1619 | |
28158 | clause, 1624 reexport/2, 110, 111, 740, 1619 | |
28143 | 28159 | clause/2, 169, 299, 300, 1183 registry, 67 |
28144 | clause/3, 266, 275, 300, 302, 1185 registry _l_i_b_r_a_r_y, 1519 | |
28145 | clause/[2 registry_delete_key/1, 1524 | |
28146 | 3], 41 registry_get_key/2, 1520 | |
28147 | clause_property/2, 114, 123, 297, registry_get_key/3, 1521 | |
28148 | 302, 1591 registry_set_key/2, 1522 | |
28149 | close/1, 303, 309, 314 registry_set_key/3, 1523 | |
28160 | clause/3, 266, 275, 300, 302, 1185 registry _l_i_b_r_a_r_y, 1518 | |
28161 | clause/[2 registry_delete_key/1, 1523 | |
28162 | 3], 41 registry_get_key/2, 1519 | |
28163 | clause_property/2, 114, 123, 297, registry_get_key/3, 1520 | |
28164 | 302, 1590 registry_set_key/2, 1521 | |
28165 | close/1, 303, 309, 314 registry_set_key/3, 1522 | |
28150 | 28166 | close/2, 310 release(), 1070 |
28151 | 28167 | close_dde_conversation/1, 709 reload_foreign_libraries/0, 905 |
28152 | 28168 | close_shared_object/1, 909 reload_library_index/0, 45, 46, 49 |
28153 | 28169 | clpfd _l_i_b_r_a_r_y, 741 rem/2, 493 |
28154 | clpqr _l_i_b_r_a_r_y, 1313 rename_file/2, 593, 636 | |
28170 | clpqr _l_i_b_r_a_r_y, 1312 rename_file/2, 593, 636 | |
28155 | 28171 | code_type/2, 440, 446, 448, 449 repeat/0, 209, 213, 228, 229 |
28156 | 28172 | collate, 454 representation_error/1, 1061 |
28157 | collation_key/2, 440, 455, 456, 599 require/1, 115, 1620 | |
28158 | COM, 1067 reset_gensym/0, 1353 | |
28159 | command line reset_gensym/1, 1352 | |
28173 | collation_key/2, 440, 455, 456, 599 require/1, 115, 1619 | |
28174 | COM, 1067 reset_gensym/0, 1352 | |
28175 | command line reset_gensym/1, 1351 | |
28160 | 28176 | arguments, 18 reset_profiler/0, 695 |
28161 | 28177 | compare resource/3, 41, 1180, 1181, 1187, |
28162 | 28178 | language-specific, 454 1189, 1190 |
28163 | 28179 | compare(), 1071 resource_error/1, 1066 |
28164 | compare/3, 59, 200, 566, 1119, 1624 retract, 1625 | |
28180 | compare/3, 59, 200, 566, 1119, 1623 retract, 1624 | |
28165 | 28181 | compile_aux_clauses/1, 110, 138 retract/1, 110, 118, 256, 257, 261, |
28166 | 28182 | compile_predicates/1, 284, 285 278, 284, 285, 297, 852 |
28167 | 28183 | compiling/0, 132, 157 retract/2, 761 |
28168 | complement/2, 1561 retractall/1, 256, 257, 262 | |
28169 | completion retractall_predicate_options/0, 1460 | |
28184 | complement/2, 1560 retractall/1, 256, 257, 262 | |
28185 | completion retractall_predicate_options/0, 1459 | |
28170 | 28186 | TAB, 85 rev/3, 725 |
28171 | compose/3, 1562 reverse/2, 255, 725, 1372 | |
28172 | compound, 1625 rl_add_history/1, 1617 | |
28173 | compound/1, 185 rl_read_history/1, 1619 | |
28174 | concat_atom/3, 435 rl_read_init_file/1, 1616 | |
28175 | constraint/3, 1530, 1531 rl_write_history/1, 1618 | |
28176 | constraint/4, 1531 round/1, 506 | |
28177 | constraint_add/4, 1532 | |
28187 | compose/3, 1561 reverse/2, 255, 725, 1371 | |
28188 | compound, 1624 rl_add_history/1, 1616 | |
28189 | compound/1, 185 rl_read_history/1, 1618 | |
28190 | concat_atom/3, 435 rl_read_init_file/1, 1615 | |
28191 | constraint/3, 1529, 1530 rl_write_history/1, 1617 | |
28192 | constraint/4, 1530 round/1, 506 | |
28193 | constraint_add/4, 1531 | |
28178 | 28194 | consult/1, 11, 14, 44, 93, 110- same_file/2, 631, 633 |
28179 | -114, 117, 153, 156, 157, same_length/2, 1371 | |
28195 | -114, 117, 153, 156, 157, same_length/2, 1370 | |
28180 | 28196 | 286 same_term/2, 421 |
28181 | context module, 1625 sandbox/safe_meta, 1202 | |
28182 | context_module/1, 732, 754, 1091 scalar_product/4, 1281 | |
28197 | context module, 1624 sandbox/safe_meta, 1202 | |
28198 | context_module/1, 732, 754, 1091 scalar_product/4, 1280 | |
28183 | 28199 | convert_time/2, 41 scanl/4, 1216 |
28184 | 28200 | convert_time/[2 scanl/5, 1217 |
28185 | 28201 | 8], 638 scanl/6, 1218 |
28186 | 28202 | copy_file/2, 593 scanl/7, 1219 |
28187 | copy_predicate_clauses/2, 259 see/1, 303, 304, 306, 320--322 | |
28203 | copy_predicate_clauses/2, 259 see/1, 303, 304, 320--322 | |
28188 | 28204 | copy_stream_data/2, 381, 382 seeing/1, 320, 321, 325 |
28189 | 28205 | copy_stream_data/3, 317, 380 seek/4, 311, 315, 317 |
28190 | 28206 | copy_term/2, 59, 203, 415, 417, seen/0, 327 |
28191 | 28207 | 420, 761, 774, 788 select(), 337 |
28192 | copy_term/3, 384, 770, 771, 773 select/3, 1359 | |
28193 | copy_term_nat/2, 774 select/4, 1361 | |
28194 | copysign/1, 500 select_option/3, 1399 | |
28195 | cos/1, 525 select_option/4, 1400 | |
28196 | cosh/1, 533 selectchk/3, 1360 | |
28197 | count_atom_results/3, 752 selectchk/4, 1362 | |
28208 | copy_term/3, 384, 770, 771, 773 select/3, 1358 | |
28209 | copy_term_nat/2, 774 select/4, 1360 | |
28210 | copysign/1, 500 select_option/3, 1398 | |
28211 | cos/1, 525 select_option/4, 1399 | |
28212 | cosh/1, 533 selectchk/3, 1359 | |
28213 | count_atom_results/3, 752 selectchk/4, 1361 | |
28198 | 28214 | cputime/0, 550 serialize, 253 |
28199 | create_pool/1, 1549 serialized/2, 1296 | |
28200 | create_prolog_flag/3, 41--43 set_breakpoint/4, 1603 | |
28201 | crypt _l_i_b_r_a_r_y, 1636 set_end_of_stream/1, 379 | |
28202 | csv//1, 1332 set_input/1, 304, 318, 322, 330 | |
28203 | csv//2, 1333 set_locale/1, 444 | |
28204 | csv_read_file/2, 1330 set_module/1, 742, 759 | |
28205 | csv_read_file/3, 1331 set_output/1, 304, 323, 331 | |
28206 | csv_read_file_row/3, 1334 set_prolog_flag/2, 30, 40--43, 110, | |
28207 | csv_write_file/2, 1335 475 | |
28208 | csv_write_file/3, 1336 set_prolog_IO/3, 304, 319 | |
28209 | csv_write_stream/3, 1337 set_prolog_stack/2, 19, 67, 675, | |
28215 | create_pool/1, 1548 serialized/2, 1295 | |
28216 | create_prolog_flag/3, 41--43 set_breakpoint/4, 1602 | |
28217 | crypt _l_i_b_r_a_r_y, 1635 set_end_of_stream/1, 379 | |
28218 | csv//1, 1331 set_input/1, 304, 318, 322, 330 | |
28219 | csv//2, 1332 set_locale/1, 444 | |
28220 | csv_read_file/2, 1329 set_module/1, 742, 759 | |
28221 | csv_read_file/3, 1330 set_output/1, 304, 323, 331 | |
28222 | csv_read_file_row/3, 1333 set_prolog_flag/2, 30, 40--43, 110, | |
28223 | csv_write_file/2, 1334 475 | |
28224 | csv_write_file/3, 1335 set_prolog_IO/3, 304, 319 | |
28225 | csv_write_stream/3, 1336 set_prolog_stack/2, 19, 67, 675, | |
28210 | 28226 | ctype _l_i_b_r_a_r_y, 446 704, 705, 825 |
28211 | cumulative/1, 1301 set_random/1, 504, 556, 557 | |
28212 | cumulative/2, 1302 set_stream/2, 64, 304, 306, 311, | |
28227 | cumulative/1, 1300 set_random/1, 504, 556, 557 | |
28228 | cumulative/2, 1301 set_stream/2, 64, 304, 306, 311, | |
28213 | 28229 | current_arithmetic_function/1, 558 318, 319, 337, 373, 444 |
28214 | 28230 | current_atom/1, 290 set_stream_position/2, 311, 315, 317 |
28215 | current_blob/2, 291, 1068 set_url_encoding/2, 1576 | |
28231 | current_blob/2, 291, 1068 set_url_encoding/2, 1575 | |
28216 | 28232 | current_char_conversion/2, 468, 469 setarg/3, 108, 415, 417, 418, 420, |
28217 | current_flag/1, 293 421, 765, 794, 1517 | |
28233 | current_flag/1, 293 421, 765, 794, 1516 | |
28218 | 28234 | current_foreign_library/2, 904, 1181 setenv/2, 597 |
28219 | 28235 | current_format_predicate/2, 586 setlocale/1, 825 |
28220 | 28236 | current_functor/2, 292 setlocale/3, 456, 599 |
28221 | current_input/1, 126, 304, 325, 332 setof/3, 59, 571, 732, 1638 | |
28222 | current_key/1, 273, 294 setrand/1, 1497 | |
28237 | current_input/1, 126, 304, 325, 332 setof/3, 59, 571, 732, 1637 | |
28238 | current_key/1, 273, 294 setrand/1, 1496 | |
28223 | 28239 | current_locale/1, 445 setup_call_catcher_cleanup/4, 230 |
28224 | 28240 | current_module/1, 295, 757 setup_call_cleanup/3, 229, 231, 829, |
28225 | 28241 | current_op/3, 466 857, 858 |
28226 | current_option_arg/2, 1456 shadow_price/3, 1537 | |
28227 | current_output/1, 304, 326, 333 shared, 1625 | |
28242 | current_option_arg/2, 1455 shadow_price/3, 1536 | |
28243 | current_output/1, 304, 326, 333 shared, 1624 | |
28228 | 28244 | current_predicate/1, 223, 295--297 shell/0, 595, 600 |
28229 | 28245 | current_predicate/2, 295, 296 shell/1, 79, 166, 594, 600 |
28230 | current_predicate_option/3, 1454 shell/2, 593, 601 | |
28231 | current_predicate_options/3, 1457 shell/[0-2], 597 | |
28246 | current_predicate_option/3, 1453 shell/2, 593, 601 | |
28247 | current_predicate_options/3, 1456 shell/[0-2], 597 | |
28232 | 28248 | current_prolog_flag/2, 18, 40, 41, shell/[1 |
28233 | 28249 | 45, 50, 54, 111, 400, 714, 2], 593 |
28234 | 895, 1194, 1625 shell_register_dde/6, 1526 | |
28235 | current_signal/3, 250, 251 shell_register_file_type/4, 1525, | |
28236 | current_stream/3, 312 1526 | |
28237 | current_thread_pool/1, 1546 shell_register_prolog/1, 1527 | |
28238 | cyclic terms, 59 shlib _l_i_b_r_a_r_y, 1638 | |
28250 | 895, 1194, 1624 shell_register_dde/6, 1525 | |
28251 | current_signal/3, 250, 251 shell_register_file_type/4, 1524, | |
28252 | current_stream/3, 312 1525 | |
28253 | current_thread_pool/1, 1545 shell_register_prolog/1, 1526 | |
28254 | cyclic terms, 59 shlib _l_i_b_r_a_r_y, 1637 | |
28239 | 28255 | cyclic_term/1, 59, 188, 189 show_profile/1, 692, 693 |
28240 | 28256 | |
28241 | daemon, 1236 sign/1,s499implex _l_i_b_r_a_r_y, 1528 | |
28257 | daemon, 1236 sign/1,s499implex _l_i_b_r_a_r_y, 1527 | |
28242 | 28258 | date_time_stamp/2, 615 sin/1, 524 |
28243 | date_time_value/3, 611, 616 singleton, 1625 | |
28259 | date_time_value/3, 611, 616 singleton, 1624 | |
28244 | 28260 | day_of_the_week/2, 621 variable, 58 |
28245 | 28261 | DCG, 110, 253 sinh/1, 532 |
28246 | 28262 | dcg_translate_rule/2, 135, 139 size_file/2, 637 |
28247 | dcg_translate_rule/4, 145 size_nb_set/2, 1392 | |
28263 | dcg_translate_rule/4, 145 size_nb_set/2, 1391 | |
28248 | 28264 | dde_current_connection/2, 717 skip/1, 374, 375 |
28249 | 28265 | dde_current_service/2, 716 skip/2, 375 |
28250 | 28266 | dde_execute/2, 711 sleep/1, 722 |
28251 | 28267 | dde_poke/4, 712 socket _l_i_b_r_a_r_y, 337 |
28252 | 28268 | dde_register_service/2, 714 Solaris, 832 |
28253 | dde_request/3, 710 solution, 1625 | |
28269 | dde_request/3, 710 solution, 1624 | |
28254 | 28270 | dde_unregister_service/1, 715 sort/2, 563, 564, 566, 571 |
28255 | debug _l_i_b_r_a_r_y, 105 source_exports/2, 1620, 1623 | |
28271 | debug _l_i_b_r_a_r_y, 105 source_exports/2, 1619, 1622 | |
28256 | 28272 | debug/0, 32, 41, 236, 673, 675, source_file/1, 122 |
28257 | 676, 704, 869, 1134, 1603, source_file/2, 114, 123, 157, 297 | |
28258 | 1605 source_file_property/2, 111, 114, | |
28259 | debug/1, 1342 124 | |
28260 | debug/3, 239, 1346 source_location/2, 126, 127 | |
28261 | debug_message_context/1, 1345 split_string/4, 435 | |
28273 | 676, 704, 869, 1134, 1602, source_file/2, 114, 123, 157, 297 | |
28274 | 1604 source_file_property/2, 111, 114, | |
28275 | debug/1, 1341 124 | |
28276 | debug/3, 239, 1345 source_location/2, 126, 127 | |
28277 | debug_message_context/1, 1344 split_string/4, 435 | |
28262 | 28278 | debugging spy/1, 32, 41, 44, 95, 96, 106, |
28263 | 28279 | exceptions, 236 108, 678, 736, 873, 874, |
28264 | debugging/0, 44, 673, 677, 1610 1610, 1638 | |
28265 | debugging/1, 1339, 1340 sqrt/1, 523 | |
28266 | debugging/2, 1341 stack | |
28280 | debugging/0, 44, 673, 677, 1609 1609, 1637 | |
28281 | debugging/1, 1338, 1339 sqrt/1, 523 | |
28282 | debugging/2, 1340 stack | |
28267 | 28283 | default_module/2, 297, 743, 744 memory management, 68 |
28268 | 28284 | del_attr/2, 767, 776 stamp_date_time/3, 611, 614, 615 |
28269 | 28285 | del_attrs/1, 779 startup file, 14 |
28270 | del_edges/3, 1557 statistics _l_i_b_r_a_r_y, 689 | |
28271 | del_vertices/3, 1555 statistics/0, 239, 687 | |
28272 | delete/3, 1364 statistics/2, 550, 686, 835 | |
28286 | del_edges/3, 1556 statistics _l_i_b_r_a_r_y, 689 | |
28287 | del_vertices/3, 1554 statistics/0, 239, 687 | |
28288 | delete/3, 1363 statistics/2, 550, 686, 835 | |
28273 | 28289 | delete_directory/1, 650 stream_pair/3, 305, 314, 318 |
28274 | 28290 | delete_file/1, 593, 635, 648 stream_position_data/3, 126, 311, |
28275 | delete_import_module/2, 743, 745, 316, 400, 1614 | |
28291 | delete_import_module/2, 743, 745, 316, 400, 1613 | |
28276 | 28292 | 746, 760 stream_property/2, 65, 306, 311, |
28277 | derive_predicate_options/0, 1459 315--318, 400 | |
28278 | derived_predicate_options/1, 1462 stream_to_lazy_list/2, 1445 | |
28279 | derived_predicate_options/3, 1461 string/1, 183, 184, 582 | |
28293 | derive_predicate_options/0, 1458 315--318, 400 | |
28294 | derived_predicate_options/1, 1461 stream_to_lazy_list/2, 1444 | |
28295 | derived_predicate_options/3, 1460 string/1, 183, 184, 582 | |
28280 | 28296 | deserialize, 253 string_code/3, 461 |
28281 | deterministic/1, 229, 1593 string_codes/2, 459 | |
28297 | deterministic/1, 229, 1592 string_codes/2, 459 | |
28282 | 28298 | Development environment, 75 string_concat/3, 462 |
28283 | dialect.pl _l_i_b_r_a_r_y, 1620 string_length/2, 460 | |
28299 | dialect.pl _l_i_b_r_a_r_y, 1619 string_length/2, 460 | |
28284 | 28300 | dif _l_i_b_r_a_r_y, 784 strip_module/3, 732, 752, 755, 760 |
28285 | dif/2, 59, 192, 783, 784 structure, 1625 | |
28301 | dif/2, 59, 192, 783, 784 structure, 1624 | |
28286 | 28302 | directory_file_path/3, 631 style_check/1, 58, 69, 111, 287, |
28287 | 28303 | directory_files/2, 643 684 |
28288 | 28304 | discontiguous/1, 114, 239, 283, sub_atom/5, 438, 461, 463 |
28289 | 28305 | 287, 684 sub_atom_icasechk/3, 439 |
28290 | 28306 | display/1, 577, 1002 sub_string/5, 461, 463 |
28291 | div/2, 495 subset/2, 1385 | |
28307 | div/2, 495 subset/2, 1384 | |
28292 | 28308 | do_not_use/1, 738 subsumes_chk/2, 282 |
28293 | 28309 | domain/2, 762 subsumes_term/2, 59, 201, 205 |
28294 | domain_error/2, 1063 subtract/3, 1386 | |
28310 | domain_error/2, 1063 subtract/3, 1385 | |
28295 | 28311 | downcase_atom/2, 447, 450, 451 succ/2, 473 |
28296 | dump/3, 1324, 1328 succeed, 1625 | |
28297 | duplicate_term/2, 59, 415, 418, sum/3, 1280 | |
28298 | 420, 789 sum_list/2, 1377 | |
28299 | dwim_match/2, 298, 719, 720 sup/2, 1318 | |
28312 | dump/3, 1323, 1327 succeed, 1624 | |
28313 | duplicate_term/2, 59, 415, 418, sum/3, 1279 | |
28314 | 420, 789 sum_list/2, 1376 | |
28315 | dwim_match/2, 298, 719, 720 sup/2, 1317 | |
28300 | 28316 | dwim_match/3, 720 swi/pce_profile _l_i_b_r_a_r_y, 689 |
28301 | 28317 | dwim_predicate/2, 298 swi_edit _l_i_b_r_a_r_y, 167 |
28302 | dynamic predicate, 1625 swritef/2, 579 | |
28318 | dynamic predicate, 1624 swritef/2, 579 | |
28303 | 28319 | dynamic/1, 41, 108, 114, 256, 262, swritef/3, 335, 574, 578 |
28304 | 283--285, 297, 753, 851, syntax_error/1, 1442 | |
28320 | 283--285, 297, 753, 851, syntax_error/1, 1441 | |
28305 | 28321 | 852, 1183, 1262 |
28306 | 28322 | |
28307 | 28323 | e/0, 548 TABcompletion, 85 |
28308 | edges/2, 1553 tab/1, 353 | |
28324 | edges/2, 1552 tab/1, 353 | |
28309 | 28325 | edit/0, 41, 161 tab/2, 354 |
28310 | 28326 | edit/1, 41, 44, 85, 88, 93, 106, tan/1, 526 |
28311 | 28327 | 114, 117, 159--163, 165, tanh/1, 534 |
28312 | 736, 1262, 1638 tdebug/0, 870, 874 | |
28328 | 736, 1262, 1637 tdebug/0, 870, 874 | |
28313 | 28329 | edit_source/1, 166 tdebug/1, 869, 870, 873 |
28314 | editor _c_l_a_s_s, 84, 89 tell/1, 303, 304, 306, 320, 321, | |
28315 | element/3, 1297 323, 324 | |
28330 | editor _c_l_a_s_s, 84, 89 tell/1, 303, 304, 320, 321, 323, | |
28331 | element/3, 1296 324 | |
28316 | 28332 | elif/1, 148 telling/1, 320, 321, 326 |
28317 | else/0, 149 term, 1625 | |
28333 | else/0, 149 term, 1624 | |
28318 | 28334 | Emacs, 23 term//1, 335 |
28319 | 28335 | emacs/[0 term_attvars/2, 775 |
28320 | 28336 | 1], 88 term_expansion/2, 44, 110, 132-- |
28321 | 28337 | emacs/prolog_colour _l_i_b_r_a_r_y, 92 136, 146, 157, 659, 806, |
28322 | empty_assoc/1, 1224 1624 | |
28323 | empty_nb_set/1, 1388 term_expansion/4, 110, 144 | |
28338 | empty_assoc/1, 1224 1623 | |
28339 | empty_nb_set/1, 1387 term_expansion/4, 110, 144 | |
28324 | 28340 | encoding/1, 64, 116 term_hash/2, 59, 62, 279--282 |
28325 | 28341 | endif/0, 150 term_hash/4, 62, 279, 281 |
28326 | 28342 | ensure_loaded/1, 34, 110, 113, 729 term_subsumer/3, 206 |
28327 | entailed/1, 1316 term_to_atom/2, 335, 430, 1040 | |
28328 | environment/2, 1472 term_variables/2, 59, 400, 413, 414 | |
28343 | entailed/1, 1315 term_to_atom/2, 335, 430, 1040 | |
28344 | environment/2, 1471 term_variables/2, 59, 400, 413, 414 | |
28329 | 28345 | epsilon/0, 549 term_variables/3, 413, 414 |
28330 | 28346 | erase/1, 266, 269, 275, 300 terms |
28331 | 28347 | erf/1, 545 cyclic, 59 |
28332 | 28348 | erfc/1, 546 thread _l_i_b_r_a_r_y, 41 |
28333 | error _l_i_b_r_a_r_y, 173, 1517 thread_at_exit/1, 657, 825, 831, 883 | |
28349 | error _l_i_b_r_a_r_y, 173, 1516 thread_at_exit/1, 657, 825, 831, 883 | |
28334 | 28350 | eval/1, 551 thread_create/3, 825, 828, 831, 891 |
28335 | eval_license/0, 1630--1632 thread_create_in_pool/4, 825, 1548 | |
28336 | exception/3, 786, 1606, 1607 thread_detach/1, 825, 828 | |
28351 | eval_license/0, 1629--1631 thread_create_in_pool/4, 825, 1547 | |
28352 | exception/3, 786, 1605, 1606 thread_detach/1, 825, 828 | |
28337 | 28353 | exceptions thread_exit/1, 827, 829, 834 |
28338 | 28354 | debugging, 236 thread_get_message/1, 840, 845 |
28339 | 28355 | exclude/3, 1205 thread_get_message/2, 844--846 |
28340 | 28356 | exists_directory/1, 634 thread_get_message/3, 841, 846 |
28341 | 28357 | exists_file/1, 41, 630 thread_initialization/1, 786, 830 |
28342 | exists_source/1, 1620, 1622 thread_join/2, 825, 827, 829, 834 | |
28358 | exists_source/1, 1619, 1621 thread_join/2, 825, 827, 829, 834 | |
28343 | 28359 | exp/1, 540 thread_local/1, 242, 284, 297, 851, |
28344 | 28360 | expand_answer/2, 659, 660 852 |
28345 | 28361 | expand_file_name/2, 41, 111, 597, thread_message_hook/3, 242 |
28346 | 28362 | 600, 639, 640, 643, 644 thread_peek_message/1, 840, 841, 847 |
28347 | 28363 | expand_file_search_path/2, 120 thread_peek_message/2, 846, 847 |
28348 | expand_goal/2, 41, 133--137, 147 thread_pool_create/3, 1544 | |
28349 | expand_goal/4, 141 thread_pool_destroy/1, 1545 | |
28350 | expand_query/4, 659 thread_pool_property/2, 1547 | |
28364 | expand_goal/2, 41, 133--137, 147 thread_pool_create/3, 1543 | |
28365 | expand_goal/4, 141 thread_pool_destroy/1, 1544 | |
28366 | expand_query/4, 659 thread_pool_property/2, 1546 | |
28351 | 28367 | expand_term/2, 133--136, 139, 253, thread_property/2, 827, 828, 831, |
28352 | 1518 834 | |
28368 | 1517 834 | |
28353 | 28369 | expand_term/4, 143 thread_self/1, 41, 826, 828, 831, |
28354 | expects_dialect/1, 111, 126, 1620, 839 | |
28355 | 1621 thread_send_message/2, 839, 842, 843 | |
28356 | explain _l_i_b_r_a_r_y, 1638 thread_setconcurrency/2, 41, 832 | |
28370 | expects_dialect/1, 111, 126, 1619, 839 | |
28371 | 1620 thread_send_message/2, 839, 842, 843 | |
28372 | explain _l_i_b_r_a_r_y, 1637 thread_setconcurrency/2, 41, 832 | |
28357 | 28373 | explain/1, 28 thread_signal/2, 229, 850, 861, |
28358 | 28374 | explain/2, 29 869, 1114, 1160 |
28359 | 28375 | export/1, 288, 749--751 thread_statistics/3, 834, 835 |
28360 | 28376 | export_list/2, 750 threads/0, 864 |
28361 | exported predicate, 1625 throw/1, 32, 59, 233--235, 248, | |
28362 | ||
28363 | fact, 1625 252,11829,08834,, 1849,11850,0, 1605--1607 | |
28377 | exported predicate, 1624 throw/1, 32, 59, 233--235, 248, | |
28378 | ||
28379 | fact, 1624 252,11829,08834,, 1849,11850,0, 1604--1606 | |
28364 | 28380 | fail/0, 137, 210 time/1, 550, 688 |
28365 | 28381 | false/0, 211 time_file/2, 638 |
28366 | fd_dom/2, 1312 tmp_file/2, 647, 648 | |
28367 | fd_inf/2, 1309 tmp_file_stream/3, 647, 648 | |
28368 | fd_size/2, 1311 tnodebug/0, 872 | |
28369 | fd_sup/2, 1310 tnodebug/1, 871, 874 | |
28370 | fd_var/1, 1308 told/0, 328 | |
28371 | file_base_name/2, 632 top_sort/2, 1564 | |
28372 | file_directory_name/2, 631, 632 top_sort/3, 1565 | |
28382 | fd_dom/2, 1311 tmp_file/2, 647, 648 | |
28383 | fd_inf/2, 1308 tmp_file_stream/3, 647, 648 | |
28384 | fd_size/2, 1310 tnodebug/0, 872 | |
28385 | fd_sup/2, 1309 tnodebug/1, 871, 874 | |
28386 | fd_var/1, 1307 told/0, 328 | |
28387 | file_base_name/2, 632 top_sort/2, 1563 | |
28388 | file_directory_name/2, 631, 632 top_sort/3, 1564 | |
28373 | 28389 | file_name_extension/3, 642 tprofile/1, 875, 876 |
28374 | file_name_to_url/2, 1580, 1581 trace/0, 32, 41, 95, 96, 106, 667, | |
28390 | file_name_to_url/2, 1579, 1580 trace/0, 32, 41, 95, 96, 106, 667, | |
28375 | 28391 | file_of_label/2, 737 673, 811, 812, 850, 1134, |
28376 | file_search_path/2, 14, 18, 41, 45, 1603, 1605 | |
28392 | file_search_path/2, 14, 18, 41, 45, 1602, 1604 | |
28377 | 28393 | 49, 80, 103, 111, 118, 119, trace/1, 41, 672 |
28378 | 28394 | 121, 126, 1129, 1163, 1186, trace/2, 673 |
28379 | 28395 | 1189, 1192 tracing/0, 668 |
28380 | 28396 | fileerrors/2, 41 transformation |
28381 | 28397 | filesex _l_i_b_r_a_r_y, 593, 631 of program, 133 |
28382 | find_chr_constraint/1, 815 transitive_closure/2, 1566 | |
28383 | findall/3, 59, 203, 209, 568, 569, transparent, 1625 | |
28384 | 573, 761, 1638 transportation/4, 1538 | |
28385 | findall/4, 569 transpose/2, 1305, 1558 | |
28386 | flag/3, 277, 293, 418 transpose_pairs/2, 1435 | |
28398 | find_chr_constraint/1, 815 transitive_closure/2, 1565 | |
28399 | findall/3, 59, 203, 209, 568, 569, transparent, 1624 | |
28400 | 573, 761, 1637 transportation/4, 1537 | |
28401 | findall/4, 569 transpose/2, 1304, 1557 | |
28402 | flag/3, 277, 293, 418 transpose_pairs/2, 1434 | |
28387 | 28403 | flag:access_level, 41 trim_stacks/0, 701, 703, 704 |
28388 | 28404 | flag:address_bits, 41 true/0, 41, 137, 212, 228 |
28389 | 28405 | flag:agc_margin, 41 truncate/1, 513 |
28394 | 28410 | flag:argv, 41 tty_put/2, 590 |
28395 | 28411 | flag:associated_file, 41 tty_size/2, 591 |
28396 | 28412 | flag:autoload, 41 ttyflush/0, 357, 577 |
28397 | flag:backquoted_string, 41 tuples_in/2, 1295 | |
28413 | flag:backquoted_string, 41 tuples_in/2, 1294 | |
28398 | 28414 | flag:bounded, 41 type_error/2, 248, 1062, 1064 |
28399 | 28415 | flag:break_level, 41 |
28400 | 28416 | flag:c_cc, 41 UCS, 63 |
28401 | flag:c_cflags, 41 ugraph _l_i_b_r_a_r_y, 1550 | |
28402 | flag:c_ldflags, 41 ugraph_union/3, 1563 | |
28403 | flag:c_libplso, 41 ugraphs.pl _l_i_b_r_a_r_y, 1550 | |
28417 | flag:c_cflags, 41 ugraph _l_i_b_r_a_r_y, 1549 | |
28418 | flag:c_ldflags, 41 ugraph_union/3, 1562 | |
28419 | flag:c_libplso, 41 ugraphs.pl _l_i_b_r_a_r_y, 1549 | |
28404 | 28420 | flag:c_libs, 41 Unicode, 63 |
28405 | 28421 | flag:char_conversion, 41 unifiable/3, 59, 201, 207 |
28406 | flag:character_escapes, 41 unify, 1625 | |
28422 | flag:character_escapes, 41 unify, 1624 | |
28407 | 28423 | flag:colon_sets_calling_context, 41 unify_with_occurs_check/2, 41, 59, |
28408 | 28424 | flag:color_term, 41 201, 202 |
28409 | flag:compile_meta_arguments, 41 union/3, 1384 | |
28425 | flag:compile_meta_arguments, 41 union/3, 1383 | |
28410 | 28426 | flag:compiled_at, 41 unix, 41 |
28411 | 28427 | flag:console_menu, 41 unix/1, 600 |
28412 | 28428 | flag:cpu_count, 41 unknown/2, 683, 1194 |
28418 | 28434 | flag:dialect, 41 unload_foreign_library/2, 903 |
28419 | 28435 | flag:double_quotes, 41 unsetenv/1, 597, 598 |
28420 | 28436 | flag:editor, 41 upcase_atom/2, 447, 451 |
28421 | flag:emacs_inferior_process, 41 update view, 278, 1625 | |
28437 | flag:emacs_inferior_process, 41 update view, 278, 1624 | |
28422 | 28438 | flag:encoding, 41 URL, 603 |
28423 | flag:executable, 41 url _l_i_b_r_a_r_y, 1394 | |
28424 | flag:exit_status, 41 url_iri/2, 1577, 1578 | |
28439 | flag:executable, 41 url _l_i_b_r_a_r_y, 1393 | |
28440 | flag:exit_status, 41 url_iri/2, 1576, 1577 | |
28425 | 28441 | flag:file_name_variables, 41 use_foreign_library/1, 130, 607, |
28426 | 28442 | flag:gc, 41 900, 1181 |
28427 | 28443 | flag:generate_debug_info, 41 use_foreign_library/2, 901 |
28428 | 28444 | flag:gmp_version, 41 use_module/1, 41, 44, 80, 110, 111, |
28429 | 28445 | flag:gui, 41 114, 153, 727--730, 739, |
28430 | flag:history, 41 747, 748, 1183, 1620 | |
28446 | flag:history, 41 747, 748, 1183, 1619 | |
28431 | 28447 | flag:home, 41 use_module/2, 45, 110, 111, 728-- |
28432 | flag:hwnd, 41 730, 740, 1620 | |
28448 | flag:hwnd, 41 730, 740, 1619 | |
28433 | 28449 | flag:integer_rounding_function, 41 use_module/[1 |
28434 | 28450 | flag:iso, 41 2], 34, 93, 110, 111, 113, 749, |
28435 | flag:large_files, 41 750, 1625 | |
28436 | flag:last_call_optimisation, 41 user _l_i_b_r_a_r_y, 1638 | |
28451 | flag:large_files, 41 750, 1624 | |
28452 | flag:last_call_optimisation, 41 user _l_i_b_r_a_r_y, 1637 | |
28437 | 28453 | flag:max_arity, 41 user profile file, 14 |
28438 | 28454 | flag:max_integer, 41 UTF-8, 63 |
28439 | 28455 | flag:max_tagged_integer, 41 utf-8, 109 |
28441 | 28457 | flag:min_tagged_integer, 41 valgrind, 1177 |
28442 | 28458 | flag:occurs_check, 41 var/1, 174, 764, 941 |
28443 | 28459 | flag:open_shared_object, 41 var_number/2, 412 |
28444 | flag:optimise, 41 variable, 1625 | |
28445 | flag:os_argv, 41 anonymous, 1625 | |
28446 | flag:pid, 41 variable_value/3, 1539 | |
28460 | flag:optimise, 41 variable, 1624 | |
28461 | flag:os_argv, 41 anonymous, 1624 | |
28462 | flag:pid, 41 variable_value/3, 1538 | |
28447 | 28463 | flag:pipe, 41 variant, 203 |
28448 | flag:prompt_alternatives_on, 41 variant_sha1/2, 282, 1636 | |
28449 | flag:qcompile, 41 varnumbers/2, 1584 | |
28450 | flag:readline, 41 varnumbers/3, 1585 | |
28464 | flag:prompt_alternatives_on, 41 variant_sha1/2, 282, 1635 | |
28465 | flag:qcompile, 41 varnumbers/2, 1583 | |
28466 | flag:readline, 41 varnumbers/3, 1584 | |
28451 | 28467 | flag:report_error, 41 verbose, 18 |
28452 | 28468 | flag:resource_database, 41 version/0, 246, 247 |
28453 | 28469 | flag:runtime, 41 version/1, 246, 247 |
28454 | flag:sandboxed_load, 41 vertices/2, 1552 | |
28455 | flag:saved_program, 41 vertices_edges_to_ugraph/3, 1551 | |
28470 | flag:sandboxed_load, 41 vertices/2, 1551 | |
28471 | flag:saved_program, 41 vertices_edges_to_ugraph/3, 1550 | |
28456 | 28472 | flag:shared_object_extension, 41 view |
28457 | flag:shared_object_search_path, 41 update, 1625 | |
28458 | flag:signals, 41 visible/1, 682, 1599 | |
28473 | flag:shared_object_search_path, 41 update, 1624 | |
28474 | flag:signals, 41 visible/1, 682, 1598 | |
28459 | 28475 | flag:stream_type_check, 41 vm_list/1, 1135 |
28460 | 28476 | flag:system_thread_id, 41 volatile/1, 297, 852, 1184 |
28461 | 28477 | flag:timezone, 41 |
28473 | 28489 | flag:verbose_autoload, 41 win_insert_menu_item/4, 625, 627 |
28474 | 28490 | flag:verbose_file_search, 41 win_registry_get_value/3, 605 |
28475 | 28491 | flag:verbose_load, 41 win_remove_dll_directory/1, 608, 609 |
28476 | flag:version, 41 win_shell/2, 593, 603, 604, 1395 | |
28492 | flag:version, 41 win_shell/2, 593, 603, 604, 1394 | |
28477 | 28493 | flag:version_data, 41 win_window_pos/1, 624 |
28478 | 28494 | flag:version_git, 41 window_title/2, 623 |
28479 | 28495 | flag:warn_override_implicit_import, windows, 41 |
28483 | 28499 | flag:write_help_with_overstrike, 41 with_output_to_chars/2, 1257 |
28484 | 28500 | flag:xpce, 41 with_output_to_chars/3, 1258 |
28485 | 28501 | flag:xpce_version, 41 with_output_to_chars/4, 1259 |
28486 | flatten/2, 729, 1374 with_quasi_quotation_input/3, 1488 | |
28502 | flatten/2, 729, 1373 with_quasi_quotation_input/3, 1487 | |
28487 | 28503 | float/1, 177, 508 working_directory/2, 16, 600, 640, |
28488 | 28504 | float_fractional_part/1, 511 651, 652 |
28489 | 28505 | float_integer_part/1, 512 write(), 1072 |
28505 | 28521 | 335, 383, 430, 440, 453, writeln/1, 393 |
28506 | 28522 | 483, 484, 574, 582, 583, 585 writeq/1, 391, 577, 582 |
28507 | 28523 | format/[1 writeq/2, 392, 962 |
28508 | 2], 383, 1638 www_form_encode/2, 1574, 1575 | |
28509 | format/[2 www_open_url/1, 1395 | |
28524 | 2], 383, 1637 www_form_encode/2, 1573, 1574 | |
28525 | format/[2 www_open_url/1, 1394 | |
28510 | 28526 | 3], 54 |
28511 | 28527 | format_predicate/2, 585 xor/2, 521 |
28512 | format_time/3, 440, 585, 599, 617 xref_built_in/1, 1484 | |
28513 | format_time/4, 617, 618 xref_called/3, 1481 | |
28514 | format_to_chars/3, 1246 xref_clean/1, 1479 | |
28515 | format_to_chars/4, 1247 xref_current_source/1, 1478 | |
28516 | free_variables/4, 1201 xref_defined/3, 1480 | |
28517 | freeze/2, 780, 781, 783 xref_exported/2, 1482 | |
28518 | frozen/2, 782 xref_module/2, 1483 | |
28519 | functor, 1625 xref_source/1, 1477 | |
28528 | format_time/3, 440, 585, 599, 617 xref_built_in/1, 1483 | |
28529 | format_time/4, 617, 618 xref_called/3, 1480 | |
28530 | format_to_chars/3, 1246 xref_clean/1, 1478 | |
28531 | format_to_chars/4, 1247 xref_current_source/1, 1477 | |
28532 | free_variables/4, 1201 xref_defined/3, 1479 | |
28533 | freeze/2, 780, 781, 783 xref_exported/2, 1481 | |
28534 | frozen/2, 782 xref_module/2, 1482 | |
28535 | functor, 1624 xref_source/1, 1476 | |
28520 | 28536 | functor/3, 185, 296, 407, 794 YAP |
28521 | 28537 | |
28522 | garbage_collect/0, 701 prolog, 1620 | |
28538 | garbage_collect/0, 701 prolog, 1619 | |
28523 | 28539 | garbage_collect_atoms/0, 702, 1149 |
28524 | garbage_collect_clauses/0, 60, 151, zcompare/3, 1306 | |
28540 | garbage_collect_clauses/0, 60, 151, zcompare/3, 1305 | |
28525 | 28541 | 152, 155 |
28526 | 28542 | garbage_collect_heap/0, 686 |
28527 | 28543 | gcd/2, 497 |
28528 | 28544 | gdebug/0, 99 |
28529 | 28545 | gen_assoc/3, 1225 |
28530 | gen_nb_set/2, 1391 | |
28531 | gen_state/1, 1533 | |
28532 | gensym/2, 1351 | |
28546 | gen_nb_set/2, 1390 | |
28547 | gen_state/1, 1532 | |
28548 | gensym/2, 1350 | |
28533 | 28549 | get/1, 366, 367 |
28534 | 28550 | get/2, 367 |
28535 | 28551 | get0/1, 306, 364--367 |
28554 | 28570 | 2], 109 |
28555 | 28571 | get_single_char/1, 18, 41, 376 |
28556 | 28572 | get_time/1, 613, 638, 686, 846 |
28557 | getenv/2, 596, 597, 1395 | |
28558 | getrand/1, 1498 | |
28559 | global_cardinality/2, 1298 | |
28560 | global_cardinality/3, 1299 | |
28561 | global_url/3, 1569 | |
28573 | getenv/2, 596, 597, 1394 | |
28574 | getrand/1, 1497 | |
28575 | global_cardinality/2, 1297 | |
28576 | global_cardinality/3, 1298 | |
28577 | global_url/3, 1568 | |
28562 | 28578 | GMP, 483 |
28563 | 28579 | GNU-Emacs, 23 |
28564 | goal, 1625 | |
28580 | goal, 1624 | |
28565 | 28581 | goal_expansion/2, 110, 133, 134, |
28566 | 136--138, 146, 1621, 1624, | |
28567 | 1638 | |
28582 | 136--138, 146, 1620, 1623, | |
28583 | 1637 | |
28568 | 28584 | goal_expansion/4, 110, 142 |
28569 | 28585 | ground/1, 59, 187, 280, 945 |
28570 | group_pairs_by_key/2, 1434 | |
28586 | group_pairs_by_key/2, 1433 | |
28571 | 28587 | gspy/1, 100 |
28572 | 28588 | gtrace/0, 98, 867 |
28573 | 28589 | guitracer/0, 95--97, 106, 666, 670 |
28574 | gxref/0, 28, 103, 730, 1183, 1476 | |
28575 | ||
28576 | halt/0, 32, 128, 656, 1638 | |
28577 | halt/1, 41, 656, 657, 1134, 1638 | |
28590 | gxref/0, 28, 103, 730, 1183, 1475 | |
28591 | ||
28592 | halt/0, 32, 128, 656, 1637 | |
28593 | halt/1, 41, 656, 657, 1134, 1637 | |
28578 | 28594 | halt/[0 |
28579 | 28595 | 1], 128 |
28580 | hashing, 1625 | |
28581 | head, 1625 | |
28582 | help/0, 25, 44, 1187, 1611 | |
28583 | help/1, 25, 26, 41, 44, 1611 | |
28596 | hashing, 1624 | |
28597 | head, 1624 | |
28598 | help/0, 25, 44, 1187, 1610 | |
28599 | help/1, 25, 26, 41, 44, 1610 | |
28584 | 28600 | hooks, 44 |
28585 | html_write _l_i_b_r_a_r_y, 1486 | |
28586 | http/html_write _l_i_b_r_a_r_y, 1596 | |
28601 | html_write _l_i_b_r_a_r_y, 1485 | |
28602 | http/html_write _l_i_b_r_a_r_y, 1595 | |
28587 | 28603 | http/http_error _l_i_b_r_a_r_y, 236 |
28588 | 28604 | http/http_header _l_i_b_r_a_r_y, 617 |
28589 | http/http_load _l_i_b_r_a_r_y, 111, 1613 | |
28590 | http_location/2, 1571 | |
28605 | http/http_load _l_i_b_r_a_r_y, 111, 1612 | |
28606 | http_location/2, 1570 | |
28591 | 28607 | http_open/3, 248 |
28592 | 28608 | http_timestamp/2, 617 |
28593 | 28609 | IA32, 73 |
28600 | 28616 | update view, 278 |
28601 | 28617 | import/1, 750, 751 |
28602 | 28618 | import_module/2, 295, 743--745 |
28603 | imported predicate, 1625 | |
28604 | in/2, 1273 | |
28619 | imported predicate, 1624 | |
28620 | in/2, 1272 | |
28605 | 28621 | in_pce_thread/1, 889, 890 |
28606 | 28622 | in_pce_thread_sync/1, 890 |
28607 | 28623 | include/1, 110, 111, 114, 123, 124, |
28608 | 28624 | 302 |
28609 | 28625 | include/3, 1204 |
28610 | indexing, 1625 | |
28626 | indexing, 1624 | |
28611 | 28627 | term-hashes, 279 |
28612 | indomain/1, 1275 | |
28613 | inf/2, 1317 | |
28628 | indomain/1, 1274 | |
28629 | inf/2, 1316 | |
28614 | 28630 | infinite trees, 59 |
28615 | 28631 | initialization/1, 110, 130, 131, |
28616 | 28632 | 154, 786, 830, 896, 1153, |
28617 | 28633 | 1185 |
28618 | 28634 | initialization/2, 131 |
28619 | ins/2, 1274 | |
28635 | ins/2, 1273 | |
28620 | 28636 | instance/2, 276 |
28621 | 28637 | instantiation_error/1, 1059 |
28622 | integer, 1625 | |
28638 | integer, 1624 | |
28623 | 28639 | unbounded, 483 |
28624 | 28640 | integer/1, 176, 507 |
28625 | 28641 | interactor/0, 318, 866 |
28626 | 28642 | internationalization, 63 |
28627 | interpreted, 1625 | |
28628 | intersection/3, 1383 | |
28643 | interpreted, 1624 | |
28644 | intersection/3, 1382 | |
28629 | 28645 | is/2, 482, 483, 508, 818 |
28630 | 28646 | is_absolute_file_name/1, 641 |
28631 | is_absolute_url/1, 1570 | |
28647 | is_absolute_url/1, 1569 | |
28632 | 28648 | is_assoc/1, 1235 |
28633 | 28649 | is_list/1, 560 |
28634 | is_ordset/1, 1410 | |
28635 | is_set/1, 1381 | |
28650 | is_ordset/1, 1409 | |
28651 | is_set/1, 1380 | |
28636 | 28652 | is_stream/1, 313 |
28637 | 28653 | ISO Latin 1, 53 |
28638 | 28654 | |
28642 | 28658 | |
28643 | 28659 | keysort/2, 565, 566 |
28644 | 28660 | |
28645 | label/1, 1276 | |
28646 | labeling/2, 1277 | |
28647 | last/2, 1369 | |
28648 | lazy_list_character_count/1, 1444 | |
28649 | lazy_list_location//1, 1443 | |
28650 | leash/1, 32, 681, 682, 813, 1599 | |
28661 | label/1, 1275 | |
28662 | labeling/2, 1276 | |
28663 | last/2, 1368 | |
28664 | lazy_list_character_count/1, 1443 | |
28665 | lazy_list_location//1, 1442 | |
28666 | leash/1, 32, 681, 682, 813, 1598 | |
28651 | 28667 | length/2, 562 |
28652 | lex_chain/1, 1294 | |
28668 | lex_chain/1, 1293 | |
28653 | 28669 | lgamma/1, 544 |
28654 | 28670 | library(apply_macros) _l_i_b_r_a_r_y, 110 |
28655 | 28671 | library_directory/1, 45, 49, 118 |
28656 | license/1, 1633 | |
28657 | license/2, 1632, 1633 | |
28672 | license/1, 1632 | |
28673 | license/2, 1631, 1632 | |
28658 | 28674 | line_count/2, 316, 318, 340, 589 |
28659 | 28675 | line_position/2, 316, 318, 341, 589 |
28660 | 28676 | list_autoload/0, 1261--1263 |
28661 | list_debug_topics/0, 1344 | |
28677 | list_debug_topics/0, 1343 | |
28662 | 28678 | list_redefined/0, 1261, 1264 |
28663 | 28679 | list_to_assoc/2, 1228 |
28664 | list_to_ord_set/2, 1413 | |
28665 | list_to_set/2, 1382 | |
28680 | list_to_ord_set/2, 1412 | |
28681 | list_to_set/2, 1381 | |
28666 | 28682 | list_undefined/0, 41, 117, 1261-- |
28667 | 28683 | 1263 |
28668 | 28684 | listen/2, 1239, 1240 |
28674 | 28690 | load_file/2, 111 |
28675 | 28691 | load_files/2, 41, 44, 64, 110--112, |
28676 | 28692 | 124, 125, 153, 154, 158, |
28677 | 684, 730, 1476, 1612, 1613, | |
28678 | 1622, 1638 | |
28693 | 684, 730, 1475, 1611, 1612, | |
28694 | 1621, 1637 | |
28679 | 28695 | load_foreign_library/1, 130, 898, |
28680 | 28696 | 907, 1161, 1186 |
28681 | 28697 | load_foreign_library/2, 899 |
28704 | 28720 | manpce/0, 67 |
28705 | 28721 | map_assoc/2, 1229 |
28706 | 28722 | map_assoc/3, 1230 |
28707 | map_list_to_pairs/3, 1436 | |
28723 | map_list_to_pairs/3, 1435 | |
28708 | 28724 | maplist/2, 573, 1208 |
28709 | 28725 | maplist/3, 731, 752, 1209 |
28710 | 28726 | maplist/4, 1210 |
28712 | 28728 | maplist_/3, 731, 752 |
28713 | 28729 | max/2, 501 |
28714 | 28730 | max_assoc/3, 1231 |
28715 | max_list/2, 1378 | |
28716 | max_member/2, 1375 | |
28717 | max_var_number/3, 1586 | |
28718 | maximize/1, 1320 | |
28719 | maximize/3, 1534, 1535 | |
28720 | maybe/0, 1499 | |
28721 | maybe/1, 1500 | |
28722 | maybe/2, 1501 | |
28731 | max_list/2, 1377 | |
28732 | max_member/2, 1374 | |
28733 | max_var_number/3, 1585 | |
28734 | maximize/1, 1319 | |
28735 | maximize/3, 1533, 1534 | |
28736 | maybe/0, 1498 | |
28737 | maybe/1, 1499 | |
28738 | maybe/2, 1500 | |
28723 | 28739 | member/2, 32, 229, 561, 640, 730, |
28724 | 1355, 1638 | |
28740 | 1354, 1637 | |
28725 | 28741 | memberchk/2, 561 |
28726 | 28742 | memory |
28727 | 28743 | layout, 68 |
28728 | merge_options/3, 1401 | |
28744 | merge_options/3, 1400 | |
28729 | 28745 | message |
28730 | 28746 | service, 1236 |
28731 | 28747 | message_hook/3, 238--242, 248, 704, |
28732 | 1638 | |
28748 | 1637 | |
28733 | 28749 | message_property/2, 41, 243 |
28734 | 28750 | message_queue_create/1, 838, 842, |
28735 | 28751 | 844 |
28737 | 28753 | message_queue_destroy/1, 844, 845 |
28738 | 28754 | message_queue_property/2, 834, 848 |
28739 | 28755 | message_to_string/2, 239, 241, 245 |
28740 | meta-predicate, 1625 | |
28741 | meta_options/3, 730, 1402 | |
28756 | meta-predicate, 1624 | |
28757 | meta_options/3, 730, 1401 | |
28742 | 28758 | meta_predicate/1, 41, 136, 186, |
28743 | 28759 | 297, 731, 732, 752, 760, |
28744 | 28760 | 1091, 1139, 1183 |
28745 | 28761 | min/2, 502 |
28746 | 28762 | min_assoc/3, 1232 |
28747 | min_list/2, 1379 | |
28748 | min_member/2, 1376 | |
28749 | minimize/1, 1319 | |
28750 | minimize/3, 1535 | |
28763 | min_list/2, 1378 | |
28764 | min_member/2, 1375 | |
28765 | minimize/1, 1318 | |
28766 | minimize/3, 1534 | |
28751 | 28767 | mod/2, 492 |
28752 | module, 1625 | |
28753 | contex, 1625 | |
28754 | module transparent, 1625 | |
28768 | module, 1624 | |
28769 | contex, 1624 | |
28770 | module transparent, 1624 | |
28755 | 28771 | module/1, 41, 110, 288, 736, 737, |
28756 | 28772 | 825 |
28757 | 28773 | module/2, 134, 464, 465, 725--727, |
28759 | 28775 | module/3, 727 |
28760 | 28776 | module_property/2, 758, 759 |
28761 | 28777 | module_transparent/1, 297, 732, |
28762 | 735, 753, 760, 1091, 1625 | |
28778 | 735, 753, 760, 1091, 1624 | |
28763 | 28779 | msb/1, 552 |
28764 | 28780 | msort/2, 564 |
28765 | 28781 | multifile/1, 41, 114, 283, 286, |
28766 | 297, 1262, 1609, 1625 | |
28767 | must_be/2, 1517 | |
28782 | 297, 1262, 1608, 1624 | |
28783 | must_be/2, 1516 | |
28768 | 28784 | mutex_create/1, 854, 857, 858 |
28769 | 28785 | mutex_create/2, 855, 862 |
28770 | 28786 | mutex_destroy/1, 856 |
28774 | 28790 | mutex_trylock/1, 859 |
28775 | 28791 | mutex_unlock/1, 860 |
28776 | 28792 | mutex_unlock_all/0, 861 |
28777 | my_compare/3, 1624 | |
28793 | my_compare/3, 1623 | |
28778 | 28794 | mypred/1, 738 |
28779 | 28795 | name/1, 731 |
28780 | 28796 | name/2, 422, 429 |
28784 | 28800 | nb_getval/2, 790 |
28785 | 28801 | nb_linkarg/3, 418--420 |
28786 | 28802 | nb_linkval/2, 419, 420, 791, 794 |
28787 | nb_set _l_i_b_r_a_r_y, 1387 | |
28788 | nb_set_to_list/2, 1393 | |
28789 | nb_setarg/3, 108, 417--420, 1387, | |
28790 | 1517 | |
28803 | nb_set _l_i_b_r_a_r_y, 1386 | |
28804 | nb_set_to_list/2, 1392 | |
28805 | nb_setarg/3, 108, 417--420, 1386, | |
28806 | 1516 | |
28791 | 28807 | nb_setval/2, 418, 420, 786, 789, |
28792 | 791, 794, 1607 | |
28793 | neck, 1625 | |
28794 | neighbors/3, 1560 | |
28795 | neighbours/3, 1559, 1560 | |
28796 | nextto/3, 1363 | |
28808 | 791, 794, 1606 | |
28809 | neck, 1624 | |
28810 | neighbors/3, 1559 | |
28811 | neighbours/3, 1558, 1559 | |
28812 | nextto/3, 1362 | |
28797 | 28813 | nl/0, 343 |
28798 | 28814 | nl/1, 344 |
28799 | 28815 | nl/[0 |
28800 | 28816 | 1], 577 |
28801 | nodebug/0, 675, 676, 1599 | |
28802 | nodebug/1, 1343 | |
28817 | nodebug/0, 675, 676, 1598 | |
28818 | nodebug/1, 1342 | |
28803 | 28819 | noguitracer/0, 95, 97, 106, 671 |
28804 | 28820 | nonvar/1, 175 |
28805 | 28821 | noprofile/1, 696 |
28806 | 28822 | noprotocol/0, 664 |
28807 | 28823 | normalize_space/2, 453 |
28808 | nospy/1, 32, 44, 679, 874, 1610 | |
28809 | nospyall/0, 44, 680, 1610 | |
28810 | not/1, 225, 1638 | |
28824 | nospy/1, 32, 44, 679, 874, 1609 | |
28825 | nospyall/0, 44, 680, 1609 | |
28826 | not/1, 225, 1637 | |
28811 | 28827 | notrace/0, 669, 811, 812 |
28812 | 28828 | notrace/1, 674 |
28813 | nth0/3, 1365 | |
28814 | nth0/4, 1367 | |
28815 | nth1/3, 1366 | |
28816 | nth1/4, 1368 | |
28817 | nth_clause/3, 297, 301, 302, 1591 | |
28829 | nth0/3, 1364 | |
28830 | nth0/4, 1366 | |
28831 | nth1/3, 1365 | |
28832 | nth1/4, 1367 | |
28833 | nth_clause/3, 297, 301, 302, 1590 | |
28818 | 28834 | number |
28819 | 28835 | rational, 483 |
28820 | 28836 | number/1, 180 |
28822 | 28838 | number_codes/2, 109, 422, 427--429 |
28823 | 28839 | number_to_chars/2, 1252 |
28824 | 28840 | number_to_chars/3, 1253 |
28825 | numbervars/1, 1583 | |
28841 | numbervars/1, 1582 | |
28826 | 28842 | numbervars/3, 384, 410--412 |
28827 | 28843 | numbervars/4, 387, 410, 411 |
28828 | 28844 | numbervars/[3 |
28829 | 28845 | 4], 59 |
28830 | numlist/3, 1380 | |
28831 | ||
28832 | objective/2, 1536 | |
28846 | numlist/3, 1379 | |
28847 | ||
28848 | objective/2, 1535 | |
28833 | 28849 | occurs_check, 202 |
28834 | 28850 | on_signal/3, 250, 251 |
28835 | 28851 | once/1, 226, 227, 229, 335, 655, |
28836 | 28852 | 674, 691, 692, 857, 1096 |
28837 | online_help _l_i_b_r_a_r_y, 1638 | |
28853 | online_help _l_i_b_r_a_r_y, 1637 | |
28838 | 28854 | op/3, 283, 384, 465, 466, 741 |
28839 | 28855 | open/3, 41, 303, 305, 307 |
28840 | 28856 | open/4, 64, 65, 109, 306, 307, 311, |
28841 | 317, 318, 378, 444, 1515, | |
28842 | 1516 | |
28857 | 317, 318, 378, 444, 1514, | |
28858 | 1515 | |
28843 | 28859 | open_chars_stream/2, 1256 |
28844 | 28860 | open_dde_conversation/3, 708 |
28845 | 28861 | open_null_stream/1, 308, 317 |
28847 | 28863 | open_shared_object/2, 41, 608, 895, |
28848 | 28864 | 907, 908 |
28849 | 28865 | open_shared_object/3, 907, 908 |
28850 | operand, 1625 | |
28851 | operator, 1625 | |
28866 | operand, 1624 | |
28867 | operator, 1624 | |
28852 | 28868 | and modules, 464 |
28853 | opt_arguments/3, 1405 | |
28854 | opt_help/2, 1408 | |
28855 | opt_parse/4, 1406 | |
28856 | opt_parse/5, 1407 | |
28857 | option _l_i_b_r_a_r_y, 1517 | |
28858 | option/2, 1398 | |
28859 | option/3, 1397 | |
28860 | ord_add_element/3, 1420 | |
28861 | ord_del_element/3, 1421 | |
28862 | ord_disjoint/2, 1415 | |
28863 | ord_empty/1, 1411 | |
28864 | ord_intersect/2, 1414 | |
28865 | ord_intersect/3, 1416 | |
28866 | ord_intersection/2, 1417 | |
28867 | ord_intersection/3, 1418 | |
28868 | ord_intersection/4, 1419 | |
28869 | opt_arguments/3, 1404 | |
28870 | opt_help/2, 1407 | |
28871 | opt_parse/4, 1405 | |
28872 | opt_parse/5, 1406 | |
28873 | option _l_i_b_r_a_r_y, 1516 | |
28874 | option/2, 1397 | |
28875 | option/3, 1396 | |
28876 | ord_add_element/3, 1419 | |
28877 | ord_del_element/3, 1420 | |
28878 | ord_disjoint/2, 1414 | |
28879 | ord_empty/1, 1410 | |
28880 | ord_intersect/2, 1413 | |
28881 | ord_intersect/3, 1415 | |
28882 | ord_intersection/2, 1416 | |
28883 | ord_intersection/3, 1417 | |
28884 | ord_intersection/4, 1418 | |
28869 | 28885 | ord_list_to_assoc/2, 1233 |
28870 | ord_memberchk/2, 1423 | |
28871 | ord_selectchk/3, 1422 | |
28872 | ord_seteq/2, 1412 | |
28873 | ord_subset/2, 1424 | |
28874 | ord_subtract/3, 1425 | |
28875 | ord_symdiff/3, 1429 | |
28876 | ord_union/2, 1426 | |
28877 | ord_union/3, 1427 | |
28878 | ord_union/4, 1428 | |
28879 | ||
28880 | pack_info/1, 1465 | |
28881 | pack_install/1, 1468 | |
28882 | pack_install/2, 1469 | |
28883 | pack_list/1, 1467 | |
28884 | pack_list_installed/0, 1464 | |
28885 | pack_property/2, 1475 | |
28886 | pack_rebuild/0, 1471 | |
28887 | pack_rebuild/1, 1470 | |
28888 | pack_remove/1, 1474 | |
28889 | pack_search/1, 1466 | |
28890 | pack_upgrade/1, 1473 | |
28886 | ord_memberchk/2, 1422 | |
28887 | ord_selectchk/3, 1421 | |
28888 | ord_seteq/2, 1411 | |
28889 | ord_subset/2, 1423 | |
28890 | ord_subtract/3, 1424 | |
28891 | ord_symdiff/3, 1428 | |
28892 | ord_union/2, 1425 | |
28893 | ord_union/3, 1426 | |
28894 | ord_union/4, 1427 | |
28895 | ||
28896 | pack_info/1, 1464 | |
28897 | pack_install/1, 1467 | |
28898 | pack_install/2, 1468 | |
28899 | pack_list/1, 1466 | |
28900 | pack_list_installed/0, 1463 | |
28901 | pack_property/2, 1474 | |
28902 | pack_rebuild/0, 1470 | |
28903 | pack_rebuild/1, 1469 | |
28904 | pack_remove/1, 1473 | |
28905 | pack_search/1, 1465 | |
28906 | pack_upgrade/1, 1472 | |
28891 | 28907 | pairs _l_i_b_r_a_r_y, 565 |
28892 | pairs_keys/2, 1433 | |
28893 | pairs_keys_values/3, 1431 | |
28894 | pairs_values/2, 1432 | |
28908 | pairs_keys/2, 1432 | |
28909 | pairs_keys_values/3, 1430 | |
28910 | pairs_values/2, 1431 | |
28895 | 28911 | parse_time/2, 619 |
28896 | 28912 | parse_time/3, 619, 620 |
28897 | parse_url/2, 1572 | |
28898 | parse_url/3, 1573 | |
28899 | parse_url_search/2, 1579 | |
28913 | parse_url/2, 1571 | |
28914 | parse_url/3, 1572 | |
28915 | parse_url_search/2, 1578 | |
28900 | 28916 | partition/4, 1206 |
28901 | 28917 | partition/5, 1207 |
28902 | 28918 | pce_dispatch/1, 888, 891 |
28915 | 28931 | peek_code/[1 |
28916 | 28932 | 2], 109 |
28917 | 28933 | permission_error/3, 1065 |
28918 | permutation/2, 1373 | |
28934 | permutation/2, 1372 | |
28919 | 28935 | phrase/2, 253, 254 |
28920 | 28936 | phrase/3, 253, 255, 732 |
28921 | phrase_from_file/2, 1439 | |
28922 | phrase_from_file/3, 1440 | |
28923 | phrase_from_quasi_quotation/2, 1489 | |
28924 | phrase_from_stream/2, 1441 | |
28937 | phrase_from_file/2, 1438 | |
28938 | phrase_from_file/3, 1439 | |
28939 | phrase_from_quasi_quotation/2, 1488 | |
28940 | phrase_from_stream/2, 1440 | |
28925 | 28941 | pi/0, 547 |
28926 | 28942 | PL_abort_hook(), 1145 |
28927 | 28943 | PL_abort_unhook(), 1146 |
29032 | 29048 | PL_is_pair(), 954 |
29033 | 29049 | PL_is_string(), 947 |
29034 | 29050 | PL_is_variable(), 944 |
29035 | PL_license(), 1634 | |
29051 | PL_license(), 1633 | |
29036 | 29052 | PL_LIST, 1001 |
29037 | 29053 | PL_malloc(), 1167 |
29038 | 29054 | PL_malloc_atomic(), 1171 |
29098 | 29114 | PL_retry(), 925 |
29099 | 29115 | PL_retry_address(), 926 |
29100 | 29116 | |
29101 | 1673 | |
29117 | 1672 |
192 | 192 | predicate(clause,3,'Get clauses of a predicate',6787,6792). |
193 | 193 | predicate(nth_clause,3,'N-th clause of a predicate',6794,6813). |
194 | 194 | predicate(clause_property,2,'Get properties of a clause',6815,6853). |
195 | predicate(open,4,'Open a file (creating a stream)',6931,7029). | |
196 | predicate(open,3,'Open a file (creating a stream)',7031,7033). | |
197 | predicate(open_null_stream,1,'Open a stream to discard output',7035,7053). | |
198 | predicate(close,1,'Close stream',7055,7063). | |
199 | predicate(close,2,'Close stream (forced)',7065,7069). | |
200 | predicate(stream_property,2,'Get stream properties',7071,7184). | |
201 | predicate(current_stream,3,'Examine open streams',7186,7193). | |
202 | predicate(is_stream,1,'Type check for a stream handle',7195,7199). | |
203 | predicate(stream_pair,3,'Create/examine a bi-directional stream',7201,7208). | |
204 | predicate(set_stream_position,2,'Seek stream to position',7210,7214). | |
205 | predicate(stream_position_data,3,'Access fields from stream position',7216,7222). | |
206 | predicate(seek,4,'Modify the current position in a stream',7224,7252). | |
207 | predicate(set_stream,2,'Set stream attribute',7254,7349). | |
208 | predicate(set_prolog_IO,3,'Prepare streams for interactive session',7351,7362). | |
209 | predicate(see,1,'Change the current input stream',7441,7446). | |
210 | predicate(tell,1,'Change current output stream',7448,7453). | |
211 | predicate(append,1,'Append to a file',7455,7459). | |
212 | predicate(seeing,1,'Query the current input stream',7461,7466). | |
213 | predicate(telling,1,'Query current output stream',7468,7473). | |
214 | predicate(seen,0,'Close the current input stream',7475,7478). | |
215 | predicate(told,0,'Close current output',7480,7483). | |
216 | predicate(set_input,1,'Set current input stream from a stream',7491,7495). | |
217 | predicate(set_output,1,'Set current output stream from a stream',7497,7500). | |
218 | predicate(current_input,1,'Get current input stream',7502,7505). | |
219 | predicate(current_output,1,'Get the current output stream',7507,7509). | |
220 | predicate(with_output_to,2,'Write to strings and more',7514,7564). | |
221 | predicate(wait_for_input,3,'Wait for input with optional timeout',7569,7611). | |
222 | predicate(byte_count,2,'Byte-position in a stream',7613,7618). | |
223 | predicate(character_count,2,'Get character index on a stream',7620,7625). | |
224 | predicate(line_count,2,'Line number on stream',7627,7630). | |
225 | predicate(line_position,2,'Character position in line on stream',7632,7637). | |
226 | predicate(nl,0,'Generate a newline',7644,7647). | |
227 | predicate(nl,1,'Generate a newline on a stream',7649,7651). | |
228 | predicate(put,1,'Write a character',7653,7658). | |
229 | predicate(put,2,'Write a character on a stream',7660,7662). | |
230 | predicate(put_byte,1,'Write a byte',7664,7667). | |
231 | predicate(put_byte,2,'Write a byte on a stream',7669,7672). | |
232 | predicate(put_char,1,'Write a character',7674,7679). | |
233 | predicate(put_char,2,'Write a character on a stream',7681,7685). | |
234 | predicate(put_code,1,'Write a character-code',7687,7691). | |
235 | predicate(put_code,2,'Write a character-code on a stream',7693,7695). | |
236 | predicate(tab,1,'Output number of spaces',7697,7701). | |
237 | predicate(tab,2,'Output number of spaces on a stream',7703,7705). | |
238 | predicate(flush_output,0,'Output pending characters on current stream',7707,7711). | |
239 | predicate(flush_output,1,'Output pending characters on specified stream',7713,7716). | |
240 | predicate(ttyflush,0,'Flush output on terminal',7718,7720). | |
241 | predicate(get_byte,1,'Read next byte (ISO)',7722,7726). | |
242 | predicate(get_byte,2,'Read next byte from a stream (ISO)',7728,7731). | |
243 | predicate(get_code,1,'Read next character (ISO)',7733,7737). | |
244 | predicate(get_code,2,'Read next character from a stream (ISO)',7739,7741). | |
245 | predicate(get_char,1,'Read next character as an atom (ISO)',7743,7747). | |
246 | predicate(get_char,2,'Read next character from a stream (ISO)',7749,7752). | |
247 | predicate(get0,1,'Read next character',7754,7759). | |
248 | predicate(get0,2,'Read next character from a stream',7761,7764). | |
249 | predicate(get,1,'Read first non-blank character',7766,7770). | |
250 | predicate(get,2,'Read first non-blank character from a stream',7772,7775). | |
251 | predicate(peek_byte,1,'Read byte without removing',7777,7778). | |
252 | predicate(peek_byte,2,'Read byte without removing',7780,7781). | |
253 | predicate(peek_code,1,'Read character-code without removing',7783,7784). | |
254 | predicate(peek_code,2,'Read character-code without removing',7786,7787). | |
255 | predicate(peek_char,1,'Read character without removing',7789,7790). | |
256 | predicate(peek_char,2,'Read character without removing',7792,7799). | |
257 | predicate(skip,1,'Skip to character in current input',7801,7805). | |
258 | predicate(skip,2,'Skip to character on stream',7807,7809). | |
259 | predicate(get_single_char,1,'Read next character from the terminal',7811,7820). | |
260 | predicate(at_end_of_stream,0,'Test for end of file on input',7822,7826). | |
261 | predicate(at_end_of_stream,1,'Test for end of file on stream',7828,7833). | |
262 | predicate(set_end_of_stream,1,'Set physical end of an open file',7835,7839). | |
263 | predicate(copy_stream_data,3,'Copy n bytes from stream to stream',7841,7846). | |
264 | predicate(copy_stream_data,2,'Copy all data from stream to stream',7848,7850). | |
265 | predicate(read_pending_input,3,'Fetch buffered input from a stream',7852,7878). | |
266 | predicate(write_term,2,'Write term with options',7892,8033). | |
267 | predicate(write_term,3,'Write term with options to stream',8035,8038). | |
268 | predicate(write_length,3,'Dermine #characters to output a term',8040,8049). | |
269 | predicate(write_canonical,1,'Write a term with quotes, ignore operators',8051,8065). | |
270 | predicate(write_canonical,2,'Write a term with quotes, ignore operators on a stream',8067,8069). | |
271 | predicate(write,1,'Write term',8071,8074). | |
272 | predicate(write,2,'Write term to stream',8076,8078). | |
273 | predicate(writeq,1,'Write term, insert quotes',8080,8085). | |
274 | predicate(writeq,2,'Write term, insert quotes on stream',8087,8089). | |
275 | predicate(writeln,1,'Write term, followed by a newline',8091,8093). | |
276 | predicate(print,1,'Print a term',8095,8101). | |
277 | predicate(print,2,'Print a term on a stream',8103,8105). | |
278 | predicate(portray,1,'Hook (user) Modify behaviour of print/1',8107,8114). | |
279 | predicate(read,1,'Read Prolog term',8116,8121). | |
280 | predicate(read,2,'Read Prolog term from stream',8123,8125). | |
281 | predicate(read_clause,3,'Read clause from stream',8127,8157). | |
282 | predicate(read_term,2,'Read term with options',8159,8276). | |
283 | predicate(read_term,3,'Read term with options from stream',8278,8280). | |
284 | predicate(read_term_from_atom,3,'Read term with options from atom',8282,8287). | |
285 | predicate(read_history,6,'Read using history substitution',8289,8304). | |
286 | predicate(prompt,2,'Change the prompt used by read/1',8306,8314). | |
287 | predicate(prompt1,1,'Change prompt for 1 line',8316,8319). | |
288 | predicate(functor,3,'Get name and arity of a term or construct a term ',8324,8331). | |
289 | predicate(arg,3,'Access argument of a term',8333,8342). | |
290 | predicate(=..,2,'``Univ.\'\' Term to list conversion',8344,8359). | |
291 | predicate(numbervars,3,'Number unbound variables of a term',8361,8375). | |
292 | predicate(numbervars,4,'Number unbound variables of a term',8377,8396). | |
293 | predicate(var_number,2,'Check that var is numbered by numbervars',8398,8404). | |
294 | predicate(term_variables,2,'Find unbound variables in a term',8406,8416). | |
295 | predicate(term_variables,3,'Find unbound variables in a term',8418,8421). | |
296 | predicate(copy_term,2,'Make a copy of a term',8423,8432). | |
297 | predicate(setarg,3,'Destructive assignment on term',8444,8460). | |
298 | predicate(nb_setarg,3,'Non-backtrackable assignment to term',8462,8492). | |
299 | predicate(nb_linkarg,3,'Non-backtrackable assignment to term',8494,8498). | |
300 | predicate(duplicate_term,2,'Create a copy of a term',8500,8505). | |
301 | predicate(same_term,2,'Test terms to be at the same address',8507,8512). | |
302 | predicate(atom_codes,2,'Convert between atom and list of characters codes',8535,8541). | |
303 | predicate(atom_chars,2,'Convert between atom and list of characters',8543,8551). | |
304 | predicate(char_code,2,'Convert between character and character code',8553,8556). | |
305 | predicate(number_chars,2,'Convert between number and one-char atoms',8558,8565). | |
306 | predicate(number_codes,2,'Convert between number and character codes',8567,8571). | |
307 | predicate(atom_number,2,'Convert between atom and number',8573,8580). | |
308 | predicate(name,2,'Convert between atom and list of character codes',8582,8599). | |
309 | predicate(term_to_atom,2,'Convert between term and atom',8601,8607). | |
310 | predicate(atom_to_term,3,'Convert between atom and term',8609,8616). | |
311 | predicate(atom_concat,3,'Append two atoms',8618,8625). | |
312 | predicate(atomic_concat,3,'Concatenate two atomic values to an atom',8627,8635). | |
313 | predicate(atomic_list_concat,2,'Append a list of atoms',8637,8641). | |
314 | predicate(atomic_list_concat,3,'Append a list of atoms with separator',8643,8664). | |
315 | predicate(atom_length,2,'Determine length of an atom',8666,8672). | |
316 | predicate(atom_prefix,2,'Test for start of atom',8674,8677). | |
317 | predicate(sub_atom,5,'Take a substring from an atom',8679,8693). | |
318 | predicate(sub_atom_icasechk,3,'Case insensitive substring match',8695,8701). | |
319 | predicate(locale_create,3,'Create a new locale object',8731,8765). | |
320 | predicate(locale_destroy,1,'Destroy a locale object',8767,8771). | |
321 | predicate(locale_property,2,'Query properties of locale objects',8773,8776). | |
322 | predicate(set_locale,1,'Set the default local',8778,8784). | |
323 | predicate(current_locale,1,'Get the current locale',8786,8788). | |
324 | predicate(char_type,2,'Classify characters',8803,8911). | |
325 | predicate(code_type,2,'Classify a character-code',8913,8920). | |
326 | predicate(downcase_atom,2,'Convert atom to lower-case',8930,8935). | |
327 | predicate(upcase_atom,2,'Convert atom to upper-case',8937,8939). | |
328 | predicate(normalize_space,2,'Normalize white space',8944,8949). | |
329 | predicate(collation_key,2,'Sort key for locale dependent ordering',8957,8970). | |
330 | predicate(locale_sort,2,'Language dependent sort of atoms',8972,8977). | |
331 | predicate(atom_string,2,'Conversion between atom and string',9023,9027). | |
332 | predicate(string_codes,2,'Conversion between string and list of character codes',9029,9032). | |
333 | predicate(string_length,2,'Determine length of a string',9034,9038). | |
334 | predicate(string_code,3,'Get or find a character code in a string',9040,9049). | |
335 | predicate(string_concat,3,'atom_concat/3 for strings',9051,9060). | |
336 | predicate(sub_string,5,'Take a substring from a string',9062,9066). | |
337 | predicate(op,3,'Declare an operator',9104,9169). | |
338 | predicate(current_op,3,'Examine current operator declarations',9171,9174). | |
339 | predicate(char_conversion,2,'Provide mapping of input characters',9182,9188). | |
340 | predicate(current_char_conversion,2,'Query input character mapping',9190,9193). | |
341 | predicate(between,3,'Integer range checking/generating',9213,9220). | |
342 | predicate(succ,2,'Logical integer successor relation',9222,9228). | |
343 | predicate(plus,3,'Logical integer addition',9230,9233). | |
344 | predicate(>,2,'Arithmetic larger',9244,9246). | |
345 | predicate(<,2,'Arithmetic smaller',9248,9250). | |
346 | predicate(=<,2,'Arithmetic smaller or equal',9252,9255). | |
347 | predicate(>=,2,'Arithmetic larger or equal',9257,9260). | |
348 | predicate(=\=,2,'Arithmetic not equal',9262,9264). | |
349 | predicate(=:=,2,'Arithmetic equal',9266,9268). | |
350 | predicate(is,2,'Evaluate arithmetic expression',9270,9279). | |
351 | predicate(-,1,'Unary minus',9395,9397). | |
352 | predicate(+,1,'Unary plus (No-op)',9399,9402). | |
353 | predicate(+,2,'Addition',9404,9406). | |
354 | predicate(-,2,'Subtraction',9408,9410). | |
355 | predicate(*,2,'Multiplication',9412,9414). | |
356 | predicate(/,2,'Division',9416,9424). | |
357 | predicate(mod,2,'Remainder of division',9426,9429). | |
358 | predicate(rem,2,'Remainder of division',9431,9434). | |
359 | predicate(//,2,'Integer division',9436,9441). | |
360 | predicate(div,2,'Integer division',9443,9456). | |
361 | predicate(rdiv,2,'Ration number division',9458,9462). | |
362 | predicate(gcd,2,'Greatest common divisor',9464,9466). | |
363 | predicate(abs,1,'Absolute value',9468,9470). | |
364 | predicate(sign,1,'Extract sign of value',9472,9477). | |
365 | predicate(copysign,2,'Apply sign of N2 to N1',9479,9490). | |
366 | predicate(max,2,'Maximum of two numbers',9492,9497). | |
367 | predicate(min,2,'Minimum of two numbers',9499,9502). | |
368 | predicate('.',2,'Consult. Also list constructor',9504,9513). | |
369 | predicate(random,1,'Binds R to a new random float in the _open_ interval (0.0,1.0).',9515,9527). | |
370 | predicate(random_float,0,'Generate random number',9529,9535). | |
371 | predicate(round,1,'Round to nearest integer',9537,9539). | |
372 | predicate(integer,1,'Type check for integer',9541,9543). | |
373 | predicate(float,1,'Type check for a floating point number',9545,9550). | |
374 | predicate(rational,1,'Type check for a rational number',9552,9570). | |
375 | predicate(rationalize,1,'Convert to rational number',9572,9586). | |
376 | predicate(float_fractional_part,1,'Fractional part of a float',9588,9593). | |
377 | predicate(float_integer_part,1,'Integer part of a float',9595,9598). | |
378 | predicate(truncate,1,'Truncate float to integer',9600,9604). | |
379 | predicate(floor,1,'Largest integer below argument',9606,9609). | |
380 | predicate(ceiling,1,'Smallest integer larger than arg',9611,9614). | |
381 | predicate(ceil,1,'Smallest integer larger than arg',9616,9618). | |
382 | predicate(>>,2,'Bitwise right shift',9620,9625). | |
383 | predicate(<<,2,'Bitwise left shift',9627,9629). | |
384 | predicate(\/,2,'Bitwise or',9631,9633). | |
385 | predicate(/\,2,'Bitwise and',9635,9637). | |
386 | predicate(xor,2,'Bitwise exclusive or',9639,9641). | |
387 | predicate(\,1,'Bitwise negation',9643,9646). | |
388 | predicate(sqrt,1,'Square root',9648,9650). | |
389 | predicate(sin,1,'Sine',9652,9654). | |
390 | predicate(cos,1,'Cosine',9656,9658). | |
391 | predicate(tan,1,'Tangent',9660,9662). | |
392 | predicate(asin,1,'Inverse (arc) sine',9664,9666). | |
393 | predicate(acos,1,'Inverse (arc) cosine',9668,9670). | |
394 | predicate(atan,1,'Inverse hyperbolic sine',9672,9674). | |
395 | predicate(atan2,2,'Rectangular to polar conversion',9676,9680). | |
396 | predicate(atan,2,'Rectangular to polar conversion',9682,9684). | |
397 | predicate(sinh,1,'Hyperbolic sine',9686,9689). | |
398 | predicate(cosh,1,'Hyperbolic cosine',9691,9694). | |
399 | predicate(tanh,1,'Hyperbolic tangent',9696,9699). | |
400 | predicate(asinh,1,'Inverse (arc) sine',9701,9703). | |
401 | predicate(acosh,1,'Inverse hyperbolic cosine',9705,9707). | |
402 | predicate(atanh,1,'Inverse hyperbolic tangent',9709,9711). | |
403 | predicate(log,1,'Natural logarithm',9713,9715). | |
404 | predicate(log10,1,'10 base logarithm',9717,9719). | |
405 | predicate(exp,1,'Exponent (base $e$)',9721,9723). | |
406 | predicate(**,2,'Power function',9725,9740). | |
407 | predicate(^,2,'Existential quantification (bagof/3, setof/3)',9742,9760). | |
408 | predicate(powm,3,'Integer exponent and modulo',9762,9767). | |
409 | predicate(lgamma,1,'',9769,9772). | |
410 | predicate(erf,1,'',9774,9779). | |
411 | predicate(erfc,1,'',9781,9783). | |
412 | predicate(pi,0,'Mathematical constant',9785,9787). | |
413 | predicate(e,0,'Mathematical constant',9789,9791). | |
414 | predicate(epsilon,0,'Floating point precision',9793,9796). | |
415 | predicate(cputime,0,'Get CPU time',9798,9802). | |
416 | predicate(eval,1,'Evaluate term as expression',9804,9816). | |
417 | predicate(msb,1,'Most significant bit',9818,9823). | |
418 | predicate(lsb,1,'Least significant bit',9825,9830). | |
419 | predicate(popcount,1,'Count 1s in a bitvector',9832,9835). | |
420 | predicate(set_random,1,'Control random number generation',9840,9862). | |
421 | predicate(random_property,1,'Query properties of random generation',9864,9876). | |
422 | predicate(current_arithmetic_function,1,'Examine evaluable functions',9878,9885). | |
423 | predicate(is_list,1,'Type check for a list',9894,9908). | |
424 | predicate(memberchk,2,'Deterministic member/2',9910,9918). | |
425 | predicate(length,2,'Length of a list',9920,9937). | |
426 | predicate(sort,2,'Sort elements in a list',9939,9945). | |
427 | predicate(msort,2,'Sort, do not remove duplicates',9947,9950). | |
428 | predicate(keysort,2,'Sort, using a key',9952,9974). | |
429 | predicate(predsort,3,'Sort, using a predicate to determine the order',9976,9981). | |
430 | predicate(findall,3,'Find all solutions to a goal',9986,9993). | |
431 | predicate(findall,4,'Difference list version of findall/3',9995,10003). | |
432 | predicate(bagof,3,'Find all solutions to a goal',10005,10037). | |
433 | predicate(setof,3,'Find all unique solutions to a goal',10039,10042). | |
434 | predicate(forall,2,'Prove goal for all solutions of another goal',10047,10088). | |
435 | predicate(writef,1,'Formatted write',10103,10105). | |
436 | predicate(writef,2,'Formatted write on stream',10107,10166). | |
437 | predicate(swritef,3,'Formatted write on a string',10168,10176). | |
438 | predicate(swritef,2,'Formatted write on a string',10178,10180). | |
439 | predicate(format,1,'Formatted output',10188,10191). | |
440 | predicate(format,2,'Formatted output with arguments',10193,10364). | |
441 | predicate(format,3,'Formatted output on a stream',10366,10376). | |
442 | predicate(format_predicate,2,'Program format/[1,2]',10381,10410). | |
443 | predicate(current_format_predicate,2,'Enumerate user-defined format codes',10412,10415). | |
444 | predicate(tty_get_capability,3,'Get terminal parameter',10425,10433). | |
445 | predicate(tty_goto,2,'Goto position on screen',10435,10439). | |
446 | predicate(tty_put,2,'Write control string to terminal',10441,10447). | |
447 | predicate(tty_size,2,'Get row/column size of the terminal',10449,10463). | |
448 | predicate(shell,2,'Execute OS command',10468,10497). | |
449 | predicate(shell,1,'Execute OS command',10499,10501). | |
450 | predicate(shell,0,'Execute interactive subshell',10503,10507). | |
451 | predicate(getenv,2,'Get shell environment variable',10509,10513). | |
452 | predicate(setenv,2,'Set shell environment variable',10515,10524). | |
453 | predicate(unsetenv,1,'Delete shell environment variable',10526,10530). | |
454 | predicate(setlocale,3,'Set/query C-library regional information',10532,10544). | |
455 | predicate(unix,1,'OS interaction',10546,10587). | |
456 | predicate(win_exec,2,'Win32: spawn Windows task',10598,10605). | |
457 | predicate(win_shell,3,'Win32: open document through Shell',10607,10616). | |
458 | predicate(win_shell,2,'Win32: open document through Shell',10618,10620). | |
459 | predicate(win_registry_get_value,3,'Win32: get registry value',10622,10643). | |
460 | predicate(win_folder,2,'Win32: get special folder by CSIDL',10645,10658). | |
461 | predicate(win_add_dll_directory,1,'Add directory to DLL search path',10660,10669). | |
462 | predicate(win_add_dll_directory,2,'Add directory to DLL search path',10671,10694). | |
463 | predicate(win_remove_dll_directory,1,'',10696,10699). | |
464 | predicate(get_time,1,'Get current time',10773,10776). | |
465 | predicate(stamp_date_time,3,'Convert time-stamp to date structure',10778,10784). | |
466 | predicate(date_time_stamp,2,'Convert sate structure to time-stamp',10786,10837). | |
467 | predicate(date_time_value,3,'Extract info from a date structure',10839,10856). | |
468 | predicate(format_time,3,'C strftime() like date/time formatter',10858,11020). | |
469 | predicate(format_time,4,'date/time formatter with explicit locale',11022,11031). | |
470 | predicate(parse_time,2,'Parse text to a time-stamp',11033,11035). | |
471 | predicate(parse_time,3,'Parse text to a time-stamp',11037,11056). | |
472 | predicate(day_of_the_week,2,'Determine ordinal-day from date',11058,11063). | |
473 | predicate(window_title,2,'Win32: change title of window',11074,11077). | |
474 | predicate(win_window_pos,1,'Win32: change size and position of window',11079,11102). | |
475 | predicate(win_has_menu,0,'Win32: true if console menu is available',11104,11106). | |
476 | predicate(win_insert_menu,2,'swipl-win.exe: add menu',11108,11119). | |
477 | predicate(win_insert_menu_item,4,'swipl-win.exe: add item to menu',11121,11125). | |
478 | predicate(access_file,2,'Check access permissions of a file',11130,11140). | |
479 | predicate(exists_file,1,'Check existence of file',11142,11145). | |
480 | predicate(file_directory_name,2,'Get directory part of path',11147,11164). | |
481 | predicate(file_base_name,2,'Get file part of path',11166,11170). | |
482 | predicate(same_file,2,'Succeeds if arguments refer to same file',11172,11181). | |
483 | predicate(exists_directory,1,'Check existence of directory',11183,11186). | |
484 | predicate(delete_file,1,'Remove a file from the file system',11188,11190). | |
485 | predicate(rename_file,2,'Change name of file',11192,11198). | |
486 | predicate(size_file,2,'Get size of a file in characters',11200,11202). | |
487 | predicate(time_file,2,'Get last modification time of file',11204,11208). | |
488 | predicate(absolute_file_name,2,'Get absolute path name',11210,11218). | |
489 | predicate(absolute_file_name,3,'Get absolute path name with options',11220,11277). | |
490 | predicate(is_absolute_file_name,1,'True if arg defines an absolute path',11279,11285). | |
491 | predicate(file_name_extension,3,'Add, remove or test file extensions',11287,11295). | |
492 | predicate(directory_files,2,'Get entries of a directory/folder',11297,11303). | |
493 | predicate(expand_file_name,2,'Wildcard expansion of file names',11305,11322). | |
494 | predicate(prolog_to_os_filename,2,'Convert between Prolog and OS filenames',11324,11330). | |
495 | predicate(read_link,3,'Read a symbolic link',11332,11338). | |
496 | predicate(tmp_file,2,'Create a temporary filename',11340,11350). | |
497 | predicate(tmp_file_stream,3,'Create a temporary file and open it',11352,11379). | |
498 | predicate(make_directory,1,'Create a folder on the file system',11381,11385). | |
499 | predicate(delete_directory,1,'Remove a folder from the file system',11387,11391). | |
500 | predicate(working_directory,2,'Query/change CWD',11393,11399). | |
501 | predicate(chdir,1,'Compatibility: change working directory',11401,11403). | |
502 | predicate(break,0,'Start interactive top level',11408,11416). | |
503 | predicate(abort,0,'Abort execution, return to top level',11418,11435). | |
504 | predicate(halt,0,'Exit from Prolog',11437,11440). | |
505 | predicate(halt,1,'Exit from Prolog with status',11442,11471). | |
506 | predicate(prolog,0,'Run interactive top level',11473,11482). | |
507 | predicate(expand_query,4,'Expanded entered query',11484,11492). | |
508 | predicate(expand_answer,2,'Expand answer of query',11494,11499). | |
509 | predicate(protocol,1,'Make a log of the user interaction',11508,11511). | |
510 | predicate(protocola,1,'Append log of the user interaction to file',11513,11516). | |
511 | predicate(noprotocol,0,'Disable logging of user interaction',11518,11521). | |
512 | predicate(protocolling,1,'On what file is user interaction logged',11523,11526). | |
513 | predicate(trace,0,'Start the tracer',11537,11541). | |
514 | predicate(tracing,0,'Query status of the tracer',11543,11546). | |
515 | predicate(notrace,0,'Stop tracing',11548,11550). | |
516 | predicate(guitracer,0,'Install hooks for the graphical debugger',11552,11557). | |
517 | predicate(noguitracer,0,'Disable the graphical debugger',11559,11561). | |
518 | predicate(trace,1,'Set trace point on predicate',11563,11565). | |
519 | predicate(trace,2,'Set/Clear trace point on ports',11567,11587). | |
520 | predicate(notrace,1,'Do not debug argument goal',11589,11594). | |
521 | predicate(debug,0,'Test for debugging mode',11596,11610). | |
522 | predicate(nodebug,0,'Disable debugging',11612,11615). | |
523 | predicate(debugging,0,'Show debugger status',11617,11620). | |
524 | predicate(spy,1,'Force tracer on specified predicate',11622,11625). | |
525 | predicate(nospy,1,'Remove spy point',11627,11630). | |
526 | predicate(nospyall,0,'Remove all spy points',11632,11634). | |
527 | predicate(leash,1,'Change ports visited by the tracer',11636,11644). | |
528 | predicate(visible,1,'Ports that are visible in the tracer',11646,11649). | |
529 | predicate(unknown,2,'Trap undefined predicates',11651,11656). | |
530 | predicate(style_check,1,'Change level of warnings',11658,11742). | |
531 | predicate(statistics,2,'Obtain collected statistics',11747,11834). | |
532 | predicate(statistics,0,'Show execution statistics',11836,11838). | |
533 | predicate(time,1,'Determine time needed to execute goal',11840,11848). | |
534 | predicate(profile,1,'Obtain execution statistics',11866,11870). | |
535 | predicate(profile,2,'Obtain execution statistics',11872,11885). | |
536 | predicate(show_profile,1,'Show results of the profiler',11887,11899). | |
537 | predicate(profiler,2,'Obtain/change status of the profiler',11901,11915). | |
538 | predicate(reset_profiler,0,'Clear statistics obtained by the profiler',11917,11919). | |
539 | predicate(noprofile,1,'Hide (meta-) predicate for the profiler',11921,11927). | |
540 | predicate(garbage_collect,0,'Invoke the garbage collector',12030,12037). | |
541 | predicate(garbage_collect_atoms,0,'Invoke the atom garbage collector',12039,12047). | |
542 | predicate(trim_stacks,0,'Release unused memory resources',12049,12067). | |
543 | predicate(set_prolog_stack,2,'Modify stack characteristics',12069,12108). | |
544 | predicate(prolog_stack_property,2,'Query properties of the stacks',12110,12113). | |
545 | predicate(open_dde_conversation,3,'Win32: Open DDE channel',12159,12164). | |
546 | predicate(close_dde_conversation,1,'Win32: Close DDE channel',12166,12171). | |
547 | predicate(dde_request,3,'Win32: Make a DDE request',12173,12177). | |
548 | predicate(dde_execute,2,'Win32: Execute command on DDE server',12179,12183). | |
549 | predicate(dde_poke,3,'Win32: POKE operation on DDE server',12185,12188). | |
550 | predicate(dde_register_service,2,'Win32: Become a DDE server',12199,12236). | |
551 | predicate(dde_unregister_service,1,'Win32: Terminate a DDE service',12238,12241). | |
552 | predicate(dde_current_service,2,'Win32: Examine DDE services provided',12243,12245). | |
553 | predicate(dde_current_connection,2,'Win32: Examine open DDE connections',12247,12249). | |
554 | predicate(dwim_match,2,'Atoms match in ``Do What I Mean\'\' sense',12254,12272). | |
555 | predicate(dwim_match,3,'Atoms match in ``Do What I Mean\'\' sense',12274,12279). | |
556 | predicate(wildcard_match,2,'Csh(1) style wildcard match',12281,12297). | |
557 | predicate(sleep,1,'Suspend execution for specified time',12299,12309). | |
558 | predicate(module,2,'Declare a module',12390,12403). | |
559 | predicate(module,3,'Declare a module with language options',12405,12414). | |
560 | predicate(use_module,1,'Import a module',12430,12474). | |
561 | predicate(use_module,2,'Import predicates from a module',12476,12502). | |
562 | predicate(meta_predicate,1,'Declare access to other predicates',12555,12632). | |
563 | predicate(@,2,'Call using calling context',12676,12691). | |
564 | predicate(module,1,'Query/set current type-in module',12709,12721). | |
565 | predicate(reexport,1,'Load files and re-export the imported predicates',12744,12748). | |
566 | predicate(reexport,2,'Load predicates from a file and re-export it',12750,12754). | |
567 | predicate(import_module,2,'Query import modules',12809,12814). | |
568 | predicate(default_module,2,'Query module inheritance',12816,12821). | |
569 | predicate(add_import_module,3,'Add module to the auto-import list',12823,12827). | |
570 | predicate(delete_import_module,2,'Remove module from import list',12829,12836). | |
571 | predicate(export,1,'Export a predicate from a module',12865,12871). | |
572 | predicate(import,1,'Import a predicate from a module',12873,12880). | |
573 | predicate(module_transparent,1,'Indicate module based meta-predicate',12991,12995). | |
574 | predicate(context_module,1,'Get context module of current goal',12997,13000). | |
575 | predicate(strip_module,3,'Extract context module and term',13002,13008). | |
576 | predicate(current_module,1,'Examine existing modules',13016,13021). | |
577 | predicate(module_property,2,'Find properties of a module',13023,13061). | |
578 | predicate(set_module,1,'Set properties of a module',13063,13073). | |
579 | predicate(attvar,1,'Type test for attributed variable',13266,13270). | |
580 | predicate(put_attr,3,'Put attribute on a variable',13272,13280). | |
581 | predicate(get_attr,3,'Fetch named attribute from a variable',13282,13287). | |
582 | predicate(del_attr,2,'Delete attribute from variable',13289,13295). | |
583 | predicate(attr_unify_hook,2,'Attributed variable unification hook',13304,13315). | |
584 | predicate(attr_portray_hook,2,'Attributed variable print hook',13317,13324). | |
585 | predicate(attribute_goals,3,'Project attributes to goals',13326,13331). | |
586 | predicate(copy_term,3,'Copy a term and obtain attribute-goals',13336,13348). | |
587 | predicate(copy_term_nat,2,'Make a copy of a term without attributes',13350,13353). | |
588 | predicate(term_attvars,2,'Find attributed variables in a term',13355,13362). | |
589 | predicate(get_attrs,2,'Fetch all attributes of a variable',13372,13376). | |
590 | predicate(put_attrs,2,'Set/replace all attributes on a variable',13378,13381). | |
591 | predicate(del_attrs,1,'Delete all attributes from variable',13383,13386). | |
592 | predicate(freeze,2,'Delay execution until variable is bound',13406,13413). | |
593 | predicate(frozen,2,'Query delayed goals on var',13415,13418). | |
594 | predicate(when,2,'Execute goal when condition becomes true',13420,13429). | |
595 | predicate(dif,2,'Constrain two terms to be different',13431,13443). | |
596 | predicate(call_residue_vars,2,'Find residual attributed variables',13445,13463). | |
597 | predicate(b_setval,2,'Assign backtrackable global variable',13504,13510). | |
598 | predicate(b_getval,2,'Fetch backtrackable global variable',13512,13519). | |
599 | predicate(nb_setval,2,'Assign non-backtrackable global variable',13521,13525). | |
600 | predicate(nb_getval,2,'Fetch non-backtrackable global variable',13527,13533). | |
601 | predicate(nb_linkval,2,'Assign non-backtrackable global variable',13535,13556). | |
602 | predicate(nb_current,2,'Enumerate non-backtrackable global variables',13558,13561). | |
603 | predicate(nb_delete,1,'Delete a non-backtrackable global variable',13563,13565). | |
604 | predicate(chr_option,2,'Specify CHR compilation options',13773,13811). | |
605 | predicate(chr_constraint,1,'CHR Constraint declaration',13826,13901). | |
606 | predicate(chr_type,1,'CHR Type declaration',13903,14032). | |
607 | predicate(chr_trace,0,'Start CHR tracer',14169,14173). | |
608 | predicate(chr_notrace,0,'Stop CHR tracer',14175,14179). | |
609 | predicate(chr_leash,1,'Define CHR leashed ports',14181,14188). | |
610 | predicate(chr_show_store,1,'List suspended CHR constraints',14190,14197). | |
611 | predicate(find_chr_constraint,1,'Returns a constraint from the store',14199,14202). | |
612 | predicate(thread_create,3,'Create a new Prolog task',14500,14581). | |
613 | predicate(thread_self,1,'Get identifier of current thread',14583,14586). | |
614 | predicate(thread_join,2,'Wait for Prolog task-completion',14588,14614). | |
615 | predicate(thread_detach,1,'Make thread cleanup after completion',14616,14628). | |
616 | predicate(thread_exit,1,'Terminate Prolog task with value',14630,14641). | |
617 | predicate(thread_initialization,1,'Run action at start of thread',14643,14652). | |
618 | predicate(thread_at_exit,1,'Register goal to be called at exit',14654,14669). | |
619 | predicate(thread_setconcurrency,2,'Number of active threads',14671,14678). | |
620 | predicate(thread_property,2,'Examine Prolog threads',14693,14734). | |
621 | predicate(thread_statistics,3,'Get statistics of another thread',14736,14741). | |
622 | predicate(mutex_statistics,0,'Print statistics on mutex usage',14743,14750). | |
623 | predicate(thread_send_message,2,'Send message to another thread',14767,14783). | |
624 | predicate(thread_get_message,1,'Wait for message',14785,14805). | |
625 | predicate(thread_peek_message,1,'Test for message',14807,14814). | |
626 | predicate(message_queue_create,1,'Create queue for thread communication',14816,14821). | |
627 | predicate(message_queue_create,2,'Create queue for thread communication',14823,14836). | |
628 | predicate(message_queue_destroy,1,'Destroy queue for thread communication',14838,14843). | |
629 | predicate(thread_get_message,2,'Wait for message in a queue',14845,14851). | |
630 | predicate(thread_get_message,3,'Wait for message in a queue',14853,14875). | |
631 | predicate(thread_peek_message,2,'Test for message in a queue',14877,14882). | |
632 | predicate(message_queue_property,2,'Query message queue properties',14884,14943). | |
633 | predicate(thread_signal,2,'Execute goal in another thread',14958,14976). | |
634 | predicate(thread_local,1,'Declare thread-specific clauses for a predicate',14996,15025). | |
635 | predicate(mutex_create,1,'Create a thread-synchronisation device',15059,15063). | |
636 | predicate(mutex_create,2,'Create a thread-synchronisation device',15065,15071). | |
637 | predicate(mutex_destroy,1,'Destroy a mutex',15073,15076). | |
638 | predicate(with_mutex,2,'Run goal while holding mutex',15078,15089). | |
639 | predicate(mutex_lock,1,'Become owner of a mutex',15091,15109). | |
640 | predicate(mutex_trylock,1,'Become owner of a mutex (non-blocking)',15111,15114). | |
641 | predicate(mutex_unlock,1,'Release ownership of mutex',15116,15120). | |
642 | predicate(mutex_unlock_all,0,'Release ownership of all mutexes',15122,15126). | |
643 | predicate(mutex_property,2,'Query mutex properties',15128,15142). | |
644 | predicate(threads,0,'List running threads',15151,15153). | |
645 | predicate(join_threads,0,'Join all terminated threads interactively',15155,15162). | |
646 | predicate(interactor,0,'Start new thread with console and top level',15164,15168). | |
647 | predicate(attach_console,0,'Attach I/O console to thread',15182,15197). | |
648 | predicate(tdebug,1,'Switch a thread into debug mode',15199,15207). | |
649 | predicate(tdebug,0,'Switch all threads into debug mode',15209,15211). | |
650 | predicate(tnodebug,1,'Switch off debug mode in a thread',15213,15215). | |
651 | predicate(tnodebug,0,'Switch off debug mode in all threads',15217,15219). | |
652 | predicate(tspy,2,'Set spy point and enable debugging in a thread',15221,15227). | |
653 | predicate(tspy,1,'Set spy point and enable debugging in all threads',15229,15234). | |
654 | predicate(tprofile,1,'Profile a thread for some period',15245,15249). | |
655 | predicate(in_pce_thread,1,'Run goal in XPCE thread',15445,15452). | |
656 | predicate(in_pce_thread_sync,1,'Run goal in XPCE thread',15454,15467). | |
657 | predicate(pce_dispatch,1,'Run XPCE GUI in separate thread',15469,15476). | |
658 | predicate(load_foreign_library,1,'library(shlib) Load shared library (.so file)',15620,15621). | |
659 | predicate(load_foreign_library,2,'library(shlib) Load shared library (.so file)',15623,15649). | |
660 | predicate(use_foreign_library,1,'Load DLL/shared object (directive)',15651,15652). | |
661 | predicate(use_foreign_library,2,'Load DLL/shared object (directive)',15654,15667). | |
662 | predicate(unload_foreign_library,1,'library(shlib) Detach shared library (.so file)',15669,15670). | |
663 | predicate(unload_foreign_library,2,'library(shlib) Detach shared library (.so file)',15672,15677). | |
664 | predicate(current_foreign_library,2,'library(shlib) Examine loaded shared libraries (.so files)',15679,15681). | |
665 | predicate(reload_foreign_libraries,0,'Reload DLLs/shared objects',15683,15686). | |
666 | predicate(open_shared_object,2,'UNIX: Open shared library (.so file)',15698,15707). | |
667 | predicate(open_shared_object,3,'UNIX: Open shared library (.so file)',15709,15718). | |
668 | predicate(close_shared_object,1,'UNIX: Close shared library (.so file)',15720,15722). | |
669 | predicate(call_shared_object_function,2,'UNIX: Call C-function in shared (.so) file',15724,15729). | |
670 | predicate(qsave_program,2,'Create runtime application',19530,19595). | |
671 | predicate(qsave_program,1,'Create runtime application',19597,19599). | |
672 | predicate(autoload,0,'Autoload all predicates now',19601,19650). | |
673 | predicate(volatile,1,'Predicates that are not saved',19652,19657). | |
674 | predicate(resource,3,'Declare a program resource',19781,19815). | |
675 | predicate(open_resource,3,'Open a program resource as a stream',19817,19836). | |
676 | predicate(aggregate,3,'Aggregate bindings in Goal according to Template.',20027,20030). | |
677 | predicate(aggregate,4,'Aggregate bindings in Goal according to Template.',20032,20035). | |
678 | predicate(aggregate_all,3,'Aggregate bindings in Goal according to Template.',20037,20040). | |
679 | predicate(aggregate_all,4,'Aggregate bindings in Goal according to Template.',20042,20046). | |
680 | predicate(foreach,2,'True if conjunction of results is true.',20048,20070). | |
681 | predicate(free_variables,4,'Find free variables in bagof/setof template.',20072,20096). | |
682 | predicate(safe_meta,2,'Declare the aggregate meta-calls safe.',20098,20101). | |
683 | predicate(include,3,'Filter elements for which Goal succeeds.',20116,20122). | |
684 | predicate(exclude,3,'Filter elements for which Goal fails.',20124,20127). | |
685 | predicate(partition,4,'Filter elements of List according to Pred.',20129,20133). | |
686 | predicate(partition,5,'Filter List according to Pred in three sets.',20135,20140). | |
687 | predicate(maplist,2,'True if Goal can successfully be applied on all elements of List.',20142,20146). | |
688 | predicate(maplist,3,'As maplist/2, operating on pairs of elements from two lists.',20148,20150). | |
689 | predicate(maplist,4,'As maplist/2, operating on triples of elements from three lists.',20152,20154). | |
690 | predicate(maplist,5,'As maplist/2, operating on quadruples of elements from four lists.',20156,20158). | |
691 | predicate(foldl,4,'Fold a list, using arguments of the list as left argument.',20160,20161). | |
692 | predicate(foldl,5,'Fold a list, using arguments of the list as left argument.',20163,20164). | |
693 | predicate(foldl,6,'Fold a list, using arguments of the list as left argument.',20166,20167). | |
694 | predicate(foldl,7,'Fold a list, using arguments of the list as left argument.',20169,20179). | |
695 | predicate(scanl,4,'Left scan of list.',20181,20182). | |
696 | predicate(scanl,5,'Left scan of list.',20184,20185). | |
697 | predicate(scanl,6,'Left scan of list.',20187,20188). | |
698 | predicate(scanl,7,'Left scan of list.',20190,20201). | |
699 | predicate(assoc_to_list,2,'Convert association tree to list',20216,20219). | |
700 | predicate(assoc_to_keys,2,'Translate assoc into a key list',20221,20224). | |
701 | predicate(assoc_to_values,2,'Translate assoc into a value list',20226,20229). | |
702 | predicate(empty_assoc,1,'Create/test empty association tree',20231,20233). | |
703 | predicate(gen_assoc,3,'Enumerate members of association tree',20235,20238). | |
704 | predicate(get_assoc,3,'Fetch key from association tree',20240,20243). | |
705 | predicate(get_assoc,5,'Fetch key from association tree',20245,20248). | |
706 | predicate(list_to_assoc,2,'Create association tree from list',20250,20253). | |
707 | predicate(map_assoc,2,'Map association tree',20255,20257). | |
708 | predicate(map_assoc,3,'Map association tree',20259,20262). | |
709 | predicate(max_assoc,3,'Highest key in association tree',20264,20267). | |
710 | predicate(min_assoc,3,'Lowest key in association tree',20269,20272). | |
711 | predicate(ord_list_to_assoc,2,'Convert ordered list to assoc',20274,20277). | |
712 | predicate(put_assoc,4,'Add Key-Value to association tree',20279,20283). | |
713 | predicate(is_assoc,1,'Verify association list',20285,20288). | |
714 | predicate(broadcast,1,'Send event notification',20312,20318). | |
715 | predicate(broadcast_request,1,'Request all agents',20320,20334). | |
716 | predicate(listen,2,'Listen to event notifications',20336,20348). | |
717 | predicate(listen,3,'Listen to event notifications',20350,20385). | |
718 | predicate(unlisten,1,'Stop listening to event notifications',20387,20389). | |
719 | predicate(unlisten,2,'Stop listening to event notifications',20391,20394). | |
720 | predicate(unlisten,3,'Stop listening to event notifications',20396,20399). | |
721 | predicate(listening,3,'Who is listening to event notifications?',20401,20404). | |
722 | predicate(format_to_chars,3,'Use format/2 to write to a list of character codes.',20419,20421). | |
723 | predicate(format_to_chars,4,'Use format/2 to write to a difference list of character codes.',20423,20425). | |
724 | predicate(write_to_chars,2,'Write a term to a code list.',20427,20430). | |
725 | predicate(write_to_chars,3,'Write a term to a code list.',20432,20435). | |
726 | predicate(atom_to_chars,2,'Convert Atom into a list of character codes.',20437,20441). | |
727 | predicate(atom_to_chars,3,'Convert Atom into a difference list of character codes.',20443,20445). | |
728 | predicate(number_to_chars,2,'Convert Atom into a list of character codes.',20447,20451). | |
729 | predicate(number_to_chars,3,'Convert Number into a difference list of character codes.',20453,20455). | |
730 | predicate(read_from_chars,2,'Read Codes into Term.',20457,20462). | |
731 | predicate(read_term_from_chars,3,'Read Codes into Term.',20464,20468). | |
732 | predicate(open_chars_stream,2,'Open Codes as an input stream.',20470,20477). | |
733 | predicate(with_output_to_chars,2,'Run Goal as with once/1.',20479,20482). | |
734 | predicate(with_output_to_chars,3,'Run Goal as with once/1.',20484,20487). | |
735 | predicate(with_output_to_chars,4,'Same as with_output_to_chars/3 using an explicit stream.',20489,20493). | |
736 | predicate(check,0,'Program completeness and consistency',20501,20509). | |
737 | predicate(list_undefined,0,'List undefined predicates',20511,20539). | |
738 | predicate(list_autoload,0,'List predicates that require autoload',20541,20545). | |
739 | predicate(list_redefined,0,'List locally redefined predicates',20547,20551). | |
740 | predicate(in,2,'Var is an element of Domain.',20855,20869). | |
741 | predicate(ins,2,'The variables in the list Vars are elements of Domain.',20871,20873). | |
742 | predicate(indomain,1,'Bind Var to all feasible values of its domain on backtracking.',20875,20878). | |
743 | predicate(label,1,'Equivalent to labeling([], Vars).',20880,20882). | |
744 | predicate(labeling,2,'Assign a value to each variable in Vars.',20884,20969). | |
745 | predicate(all_different,1,'Vars are pairwise distinct.',20971,20973). | |
746 | predicate(all_distinct,1,'Like all_different/1, with stronger propagation.',20975,20986). | |
747 | predicate(sum,3,'The sum of elements of the list Vars is in relation Rel to Expr.',20988,20999). | |
748 | predicate(scalar_product,4,'Cs is a list of integers, Vs is a list of variables and integers.',21001,21005). | |
749 | predicate(#>=,2,'X is greater than or equal to Y.',21007,21009). | |
750 | predicate(#=<,2,'X is less than or equal to Y.',21011,21013). | |
751 | predicate(#=,2,'X equals Y.',21015,21017). | |
752 | predicate(#\=,2,'X is not Y.',21019,21021). | |
753 | predicate(#>,2,'X is greater than Y.',21023,21025). | |
754 | predicate(#<,2,'X is less than Y.',21027,21042). | |
755 | predicate(#\,1,'The reifiable constraint Q does _not_ hold.',21044,21052). | |
756 | predicate(#<==>,2,'P and Q are equivalent.',21054,21093). | |
757 | predicate(#==>,2,'P implies Q.',21095,21097). | |
758 | predicate(#<==,2,'Q implies P.',21099,21101). | |
759 | predicate(#/\,2,'P and Q hold.',21103,21105). | |
760 | predicate(#\/,2,'P or Q holds.',21107,21119). | |
761 | predicate(lex_chain,1,'Lists are lexicographically non-decreasing.',21121,21123). | |
762 | predicate(tuples_in,2,'Relation must be a list of lists of integers.',21125,21169). | |
763 | predicate(serialized,2,'Describes a set of non-overlapping tasks.',21171,21190). | |
764 | predicate(element,3,'The N-th element of the list of finite domain variables Vs is V.',21192,21195). | |
765 | predicate(global_cardinality,2,'Global Cardinality constraint.',21197,21207). | |
766 | predicate(global_cardinality,3,'Global Cardinality constraint.',21209,21226). | |
767 | predicate(circuit,1,'True if the list Vs of finite domain variables induces a Hamiltonian circuit.',21228,21242). | |
768 | predicate(cumulative,1,'Equivalent to cumulative(Tasks, [limit(1)]).',21244,21246). | |
769 | predicate(cumulative,2,'Tasks is a list of tasks, each of the form task(S_i, D_i, E_i, C_i, T_i).',21248,21281). | |
770 | predicate(automaton,3,'Describes a list of finite domain variables with a finite automaton.',21283,21309). | |
771 | predicate(automaton,8,'Describes a list of finite domain variables with a finite automaton.',21311,21377). | |
772 | predicate(transpose,2,'Invert the direction of all edges',21379,21439). | |
773 | predicate(zcompare,3,'Analogous to compare/3, with finite domain variables A and B.',21441,21466). | |
774 | predicate(chain,2,'Zs form a chain with respect to Relation.',21468,21479). | |
775 | predicate(fd_var,1,'True iff Var is a CLP(FD) variable.',21481,21483). | |
776 | predicate(fd_inf,2,'Inf is the infimum of the current domain of Var.',21485,21487). | |
777 | predicate(fd_sup,2,'Sup is the supremum of the current domain of Var.',21489,21491). | |
778 | predicate(fd_size,2,'Determine the size of a variable\'s domain.',21493,21497). | |
779 | predicate(fd_dom,2,'Dom is the current domain (see in/2) of Var.',21499,21505). | |
780 | predicate({},1,'DCG escape; constraints',21546,21548). | |
781 | predicate(entailed,1,'Check if constraint is entailed',21550,21554). | |
782 | predicate(inf,2,'Find the infimum of an expression',21556,21560). | |
783 | predicate(sup,2,'Find the supremum of an expression',21562,21566). | |
784 | predicate(minimize,1,'Minimizes an expression',21568,21572). | |
785 | predicate(maximize,1,'Maximizes an expression',21574,21578). | |
786 | predicate(bb_inf,5,'Infimum of expression for mixed-integer problems',21580,21589). | |
787 | predicate(bb_inf,4,'Infimum of expression for mixed-integer problems',21591,21594). | |
788 | predicate(bb_inf,3,'Infimum of expression for mixed-integer problems',21596,21599). | |
789 | predicate(dump,3,'Dump constraints on variables',21601,21611). | |
790 | predicate(csv_read_file,2,'Read a CSV file into a list of rows.',21746,21747). | |
791 | predicate(csv_read_file,3,'Read a CSV file into a list of rows.',21749,21765). | |
792 | predicate(csv,3,'Prolog DCG to `read/write\' CSV data.',21767,21768). | |
793 | predicate(csv,4,'Prolog DCG to `read/write\' CSV data.',21770,21803). | |
794 | predicate(csv_read_file_row,3,'True when Row is a row in File.',21805,21825). | |
795 | predicate(csv_write_file,2,'Write a list of Prolog terms to a CSV file.',21827,21828). | |
796 | predicate(csv_write_file,3,'Write a list of Prolog terms to a CSV file.',21830,21835). | |
797 | predicate(csv_write_stream,3,'Write the rows in Data to Stream.',21837,21851). | |
798 | predicate(debugging,1,'Test where we are debugging topic',21873,21874). | |
799 | predicate(debugging,1,'Test where we are debugging topic',21876,21877). | |
800 | predicate(debugging,2,'Examine debug topics.',21879,21893). | |
801 | predicate(debug,1,'Select topic for debugging',21895,21896). | |
802 | predicate(nodebug,1,'Disable debug-topic',21898,21907). | |
803 | predicate(list_debug_topics,0,'List registered topics for debugging',21909,21911). | |
804 | predicate(debug_message_context,1,'Specify additional context for debug messages.',21913,21919). | |
805 | predicate(debug,3,'Print debugging message on topic',21921,21934). | |
806 | predicate(debug_print_hook,3,'Hook called by debug/3.',21936,21942). | |
807 | predicate(assertion,1,'Make assertions about your program',21944,21957). | |
808 | predicate(assertion_failed,2,'This hook is called if the Goal of assertion/1 fails.',21959,21965). | |
809 | predicate(gensym,2,'Generate unique atoms from a base',21980,21985). | |
810 | predicate(reset_gensym,1,'Reset a gensym key',21987,21991). | |
811 | predicate(reset_gensym,0,'Reset all gensym keys',21993,21998). | |
812 | predicate(member,2,'True if Elem is a member of List.',22018,22028). | |
813 | predicate(append,3,'List1AndList2 is the concatenation of List1 and List2.',22030,22032). | |
814 | predicate(append,2,'Concatenate a list of lists.',22034,22040). | |
815 | predicate(prefix,2,'True iff Part is a leading substring of Whole.',22042,22045). | |
816 | predicate(select,3,'Is true when List1, with Elem removed, results in List2.',22047,22049). | |
817 | predicate(selectchk,3,'Semi-deterministic removal of first element in List that unifies with Elem.',22051,22054). | |
818 | predicate(select,4,'True if XList is unifiable with YList apart a single element at the same position that is unified with X in XList and with Y in YList.',22056,22071). | |
819 | predicate(selectchk,4,'Semi-deterministic version of select/4.',22073,22075). | |
820 | predicate(nextto,3,'True if Y follows X in List.',22077,22079). | |
821 | predicate(delete,3,'Delete matching elements from a list.',22081,22093). | |
822 | predicate(nth0,3,'True when Elem is the Index\'th element of List.',22095,22103). | |
823 | predicate(nth1,3,'Is true when Elem is the Index\'th element of List.',22105,22110). | |
824 | predicate(nth0,4,'Select/insert element at index.',22112,22129). | |
825 | predicate(nth1,4,'As nth0/4, but counting starts at 1.',22131,22133). | |
826 | predicate(last,2,'Last element of a list',22135,22143). | |
827 | predicate(proper_length,2,'True when Length is the number of elements in the proper list List.',22145,22154). | |
828 | predicate(same_length,2,'Is true when List1 and List2 are lists with the same number of elements.',22156,22163). | |
829 | predicate(reverse,2,'Is true when the elements of List2 are in reverse order compared to List1.',22165,22168). | |
830 | predicate(permutation,2,'True when Xs is a permutation of Ys.',22170,22201). | |
831 | predicate(flatten,2,'Is true if List2 is a non-nested version of List1.',22203,22213). | |
832 | predicate(max_member,2,'True when Max is the largest member in the standard order of terms.',22215,22222). | |
833 | predicate(min_member,2,'True when Min is the smallest member in the standard order of terms.',22224,22231). | |
834 | predicate(sum_list,2,'Sum is the result of adding all numbers in List.',22233,22235). | |
835 | predicate(max_list,2,'True if Max is the largest number in List.',22237,22241). | |
836 | predicate(min_list,2,'True if Min is the smallest number in List.',22243,22248). | |
837 | predicate(numlist,3,'List is a list [Low, Low+1, ... High].',22250,22256). | |
838 | predicate(is_set,1,'True if Set is a proper list without duplicates.',22258,22263). | |
839 | predicate(list_to_set,2,'Remove duplicates from a list',22265,22284). | |
840 | predicate(intersection,3,'True if Set3 unifies with the intersection of Set1 and Set2.',22286,22291). | |
841 | predicate(union,3,'True if Set3 unifies with the union of Set1 and Set2.',22293,22298). | |
842 | predicate(subset,2,'True if all elements of SubSet belong to Set as well.',22300,22305). | |
843 | predicate(subtract,3,'Delete all elements in Delete from Set.',22307,22312). | |
844 | predicate(empty_nb_set,1,'Test/create an empty non-backtrackable set',22341,22343). | |
845 | predicate(add_nb_set,2,'Add term to a non-backtrackable set',22345,22348). | |
846 | predicate(add_nb_set,3,'Add term to a non-backtrackable set',22350,22358). | |
847 | predicate(gen_nb_set,2,'Generate members of non-backtrackable set',22360,22363). | |
848 | predicate(size_nb_set,2,'Determine size of non-backtrackable set',22365,22367). | |
849 | predicate(nb_set_to_list,2,'Convert non-backtrackable set to list',22369,22372). | |
850 | predicate(www_open_url,1,'Open a web-page in a browser',22380,22400). | |
851 | predicate(option,3,'Get an Option Qfrom OptionList.',22455,22461). | |
852 | predicate(option,2,'Get an Option from OptionList.',22463,22470). | |
853 | predicate(select_option,3,'Get and remove Option from an option list.',22472,22476). | |
854 | predicate(select_option,4,'Get and remove Option with default value.',22478,22482). | |
855 | predicate(merge_options,3,'Merge two option lists.',22484,22491). | |
856 | predicate(meta_options,3,'Perform meta-expansion on options that are module-sensitive.',22493,22510). | |
857 | predicate(opt_arguments,3,'Extract commandline options according to a specification.',22814,22830). | |
858 | predicate(opt_parse,4,'Equivalent to opt_parse(OptsSpec, ApplArgs, Opts, PositionalArgs, []).',22832,22834). | |
859 | predicate(opt_parse,5,'Parse the arguments Args (as list of atoms) according to OptsSpec.',22836,22871). | |
860 | predicate(opt_help,2,'True when Help is a help string synthesized from OptsSpec.',22873,22875). | |
861 | predicate(is_ordset,1,'True if Term is an ordered set.',22906,22911). | |
862 | predicate(ord_empty,1,'True when List is the empty ordered set.',22913,22916). | |
863 | predicate(ord_seteq,2,'True if Set1 and Set2 have the same elements.',22918,22923). | |
864 | predicate(list_to_ord_set,2,'Transform a list into an ordered set.',22925,22928). | |
865 | predicate(ord_intersect,2,'True if both ordered sets have a non-empty intersection.',22930,22932). | |
866 | predicate(ord_disjoint,2,'True if Set1 and Set2 have no common elements.',22934,22937). | |
867 | predicate(ord_intersect,3,'Intersection holds the common elements of Set1 and Set2.',22939,22943). | |
868 | predicate(ord_intersection,2,'Intersection of a powerset.',22945,22950). | |
869 | predicate(ord_intersection,3,'Intersection holds the common elements of Set1 and Set2.',22952,22954). | |
870 | predicate(ord_intersection,4,'Intersection and difference between two ordered sets.',22956,22962). | |
871 | predicate(ord_add_element,3,'Insert an element into the set.',22964,22967). | |
872 | predicate(ord_del_element,3,'Delete an element from an ordered set.',22969,22972). | |
873 | predicate(ord_selectchk,3,'Is true when select(Item, Set1, Set2) and Set1, Set2 are both sorted lists without duplicates.',22974,22983). | |
874 | predicate(ord_memberchk,2,'True if Element is a member of OrdSet, compared using ==.',22985,22996). | |
875 | predicate(ord_subset,2,'Is true if all elements of Sub are in Super.',22998,23000). | |
876 | predicate(ord_subtract,3,'Diff is the set holding all elements of InOSet that are not in NotInOSet.',23002,23005). | |
877 | predicate(ord_union,2,'True if Union is the union of all elements in the superset SetOfSets.',23007,23014). | |
878 | predicate(ord_union,3,'Union is the union of Set1 and Set2.',23016,23018). | |
879 | predicate(ord_union,4,'True iff ord_union(Set1, Set2, Union) and ord_subtract(Set2, Set1, New).',23020,23023). | |
880 | predicate(ord_symdiff,3,'Is true when Difference is the symmetric difference of Set1 and Set2.',23025,23043). | |
881 | predicate(pairs_keys_values,3,'True if Keys holds the keys of Pairs and Values the values.',23060,23068). | |
882 | predicate(pairs_values,2,'Remove the keys from a list of Key-Value pairs.',23070,23073). | |
883 | predicate(pairs_keys,2,'Remove the values from a list of Key-Value pairs.',23075,23078). | |
884 | predicate(group_pairs_by_key,2,'Group values with the same key.',23080,23096). | |
885 | predicate(transpose_pairs,2,'Swap Key-Value to Value-Key.',23098,23101). | |
886 | predicate(map_list_to_pairs,3,'Create a Key-Value list by mapping each element of List.',23103,23110). | |
887 | predicate(phrase_from_file,2,'Process the content of File using the DCG rule Grammar.',23142,23166). | |
888 | predicate(phrase_from_file,3,'As phrase_from_file/2, providing additional Options.',23168,23174). | |
889 | predicate(phrase_from_stream,2,'Helper for phrase_from_file/3.',23176,23179). | |
890 | predicate(syntax_error,3,'Throw the syntax error Error at the current location of the input.',23181,23187). | |
891 | predicate(lazy_list_location,3,'True when Location is an (error) location term that represents the current location in the DCG list.',23189,23203). | |
892 | predicate(lazy_list_character_count,3,'True when CharCount is the current character count in the Lazy list.',23205,23216). | |
893 | predicate(stream_to_lazy_list,2,'Create a lazy list representing the character codes in Stream.',23218,23230). | |
894 | predicate(predicate_options,3,'Declare that the predicate PI processes options on Arg.',23372,23406). | |
895 | predicate(assert_predicate_options,4,'As predicate_options(:PI, +Arg, +Options).',23408,23416). | |
896 | predicate(current_predicate_option,3,'True when Arg of PI processes Option.',23418,23429). | |
897 | predicate(check_predicate_option,3,'Verify predicate options at runtime.',23431,23446). | |
898 | predicate(current_option_arg,2,'True when Arg of PI processes predicate options.',23448,23451). | |
899 | predicate(current_predicate_options,3,'True when Options is the current active option declaration for PI on Arg.',23453,23461). | |
900 | predicate(check_predicate_options,0,'Analyse loaded program for erroneous options.',23463,23479). | |
901 | predicate(derive_predicate_options,0,'Derive new predicate option declarations.',23481,23490). | |
902 | predicate(retractall_predicate_options,0,'Remove all dynamically (derived) predicate options.',23492,23494). | |
903 | predicate(derived_predicate_options,3,'Derive option arguments using static analysis.',23496,23499). | |
904 | predicate(derived_predicate_options,1,'Derive predicate option declarations for a module.',23501,23504). | |
905 | predicate(pack_list_installed,0,'List currently installed packages.',23524,23530). | |
906 | predicate(pack_info,1,'Print more detailed information about Pack.',23532,23534). | |
907 | predicate(pack_search,1,'Query package server and installed packages and display results.',23536,23537). | |
908 | predicate(pack_list,1,'Query package server and installed packages and display results.',23539,23571). | |
909 | predicate(pack_install,1,'Install a package.',23573,23591). | |
910 | predicate(pack_install,2,'Install package Name.',23593,23605). | |
911 | predicate(pack_rebuild,1,'Rebuilt possible foreign components of Pack.',23607,23609). | |
912 | predicate(pack_rebuild,0,'Rebuild foreign components of all packages.',23611,23613). | |
913 | predicate(environment,2,'Hook to define the environment for building packs.',23615,23631). | |
914 | predicate(pack_upgrade,1,'Try to upgrade the package Pack.',23633,23638). | |
915 | predicate(pack_remove,1,'Remove the indicated package.',23640,23642). | |
916 | predicate(pack_property,2,'True when Property is a property of Pack.',23644,23669). | |
917 | predicate(xref_source,1,'Cross-reference analysis of source',23704,23709). | |
918 | predicate(xref_current_source,1,'Examine cross-referenced sources',23711,23713). | |
919 | predicate(xref_clean,1,'Remove analysis of source',23715,23717). | |
920 | predicate(xref_defined,3,'Examine defined predicates',23719,23730). | |
921 | predicate(xref_called,3,'Examine called predicates',23732,23734). | |
922 | predicate(xref_exported,2,'Examine exported predicates',23736,23738). | |
923 | predicate(xref_module,2,'Module defined by source',23740,23742). | |
924 | predicate(xref_built_in,1,'Examine defined built-ins',23744,23749). | |
925 | predicate(called_by,2,'Hook (prolog) Extend cross-referencer',23757,23770). | |
926 | predicate(with_quasi_quotation_input,3,'',23850,23870). | |
927 | predicate(phrase_from_quasi_quotation,2,'',23872,23878). | |
928 | predicate(quasi_quotation_syntax,1,'',23880,23883). | |
929 | predicate(quasi_quotation_syntax_error,1,'',23885,23890). | |
930 | predicate(random,1,'Binds R to a new random float in the _open_ interval (0.0,1.0).',23904,23912). | |
931 | predicate(random_between,3,'Binds R to a random integer in [L,U] (i.e., including both L and U).',23914,23917). | |
932 | predicate(random,3,'Generate a random integer or float in a range.',23919,23920). | |
933 | predicate(random,3,'Generate a random integer or float in a range.',23922,23932). | |
934 | predicate(setrand,1,'Query/set the state of the random generator.',23934,23935). | |
935 | predicate(getrand,1,'Query/set the state of the random generator.',23937,23956). | |
936 | predicate(maybe,0,'Succeed/fail with equal probability (variant of maybe/1).',23958,23960). | |
937 | predicate(maybe,1,'Succeed with probability P, fail with probability 1-P.',23962,23964). | |
938 | predicate(maybe,2,'Succeed with probability K/N (variant of maybe/1).',23966,23968). | |
939 | predicate(random_perm2,4,'Does X=A,Y=B or X=B,Y=A with equal probability.',23970,23972). | |
940 | predicate(random_member,2,'X is a random member of List.',23974,23979). | |
941 | predicate(random_select,3,'Randomly select or insert an element.',23981,23982). | |
942 | predicate(random_select,3,'Randomly select or insert an element.',23984,23989). | |
943 | predicate(randset,3,'S is a sorted list of K unique random integers in the range 1..N.',23991,24006). | |
944 | predicate(randseq,3,'S is a list of K unique random integers in the range 1..N.',24008,24019). | |
945 | predicate(random_permutation,2,'Permutation is a random permutation of List.',24021,24022). | |
946 | predicate(random_permutation,2,'Permutation is a random permutation of List.',24024,24030). | |
947 | predicate(read_line_to_codes,2,'Read line from a stream',24043,24051). | |
948 | predicate(read_line_to_codes,3,'Read line from a stream',24053,24074). | |
949 | predicate(read_stream_to_codes,2,'Read contents of stream',24076,24078). | |
950 | predicate(read_stream_to_codes,3,'Read contents of stream',24080,24082). | |
951 | predicate(read_file_to_codes,3,'Read contents of file',24084,24090). | |
952 | predicate(read_file_to_terms,3,'Read contents of file to Prolog terms',24092,24098). | |
953 | predicate(record,1,'Define named fields in a term',24192,24197). | |
954 | predicate(registry_get_key,2,'Get principal value of key',24216,24219). | |
955 | predicate(registry_get_key,3,'Get associated value of key',24221,24223). | |
956 | predicate(registry_set_key,2,'Set principal value of key',24225,24228). | |
957 | predicate(registry_set_key,3,'Set associated value of key',24230,24233). | |
958 | predicate(registry_delete_key,1,'Remove a key',24235,24237). | |
959 | predicate(shell_register_file_type,4,'Register a file-type',24239,24245). | |
960 | predicate(shell_register_dde,6,'Register DDE action',24247,24254). | |
961 | predicate(shell_register_prolog,1,'Register Prolog',24256,24275). | |
962 | predicate(assignment,2,'Solve assignment problem',24300,24306). | |
963 | predicate(constraint,3,'Add linear constraint to state',24308,24318). | |
964 | predicate(constraint,4,'Add named linear constraint to state',24320,24323). | |
965 | predicate(constraint_add,4,'Extend a named constraint',24325,24329). | |
966 | predicate(gen_state,1,'Create empty linear program',24331,24334). | |
967 | predicate(maximize,3,'Maximize objective function in to linear constraints',24336,24341). | |
968 | predicate(minimize,3,'Minimize objective function in to linear constraints',24343,24345). | |
969 | predicate(objective,2,'Fetch value of objective function',24347,24350). | |
970 | predicate(shadow_price,3,'Fetch shadow price in solved state',24352,24356). | |
971 | predicate(transportation,4,'Solve transportation problem',24358,24366). | |
972 | predicate(variable_value,3,'Fetch value of variable in solved state',24368,24377). | |
973 | predicate(thread_pool_create,3,'Create a pool of threads.',24551,24568). | |
974 | predicate(thread_pool_destroy,1,'Destroy the thread pool named Name.',24570,24574). | |
975 | predicate(current_thread_pool,1,'True if Name refers to a defined thread pool.',24576,24578). | |
976 | predicate(thread_pool_property,2,'True if Property is a property of thread pool Name.',24580,24601). | |
977 | predicate(thread_create_in_pool,4,'Create a thread in Pool.',24603,24617). | |
978 | predicate(create_pool,1,'This hook is called if thread_create_in_pool/4 discovers that the thread pool does not exist.',24619,24632). | |
979 | predicate(vertices_edges_to_ugraph,3,'Create unweighted graph',24663,24681). | |
980 | predicate(vertices,2,'Find vertices in graph',24683,24689). | |
981 | predicate(edges,2,'Find edges in graph',24691,24698). | |
982 | predicate(add_vertices,3,'Add vertices to graph',24700,24708). | |
983 | predicate(del_vertices,3,'Delete vertices from graph',24710,24722). | |
984 | predicate(add_edges,3,'Add edges to graph',24724,24736). | |
985 | predicate(del_edges,3,'Delete edges from graph',24738,24748). | |
986 | predicate(transpose,2,'Invert the direction of all edges',24750,24761). | |
987 | predicate(neighbours,3,'Find neighbors of vertice',24763,24772). | |
988 | predicate(neighbors,3,'Find neighbors of vertice',24774,24776). | |
989 | predicate(complement,2,'Inverse presense of edges',24778,24788). | |
990 | predicate(compose,3,'',24790,24798). | |
991 | predicate(ugraph_union,3,'Union of two graphs',24800,24807). | |
992 | predicate(top_sort,2,'Sort graph topologically',24809,24819). | |
993 | predicate(top_sort,3,'Sort graph topologically',24821,24824). | |
994 | predicate(transitive_closure,2,'Create transitive closure of graph',24826,24834). | |
995 | predicate(reachable,3,'Find all reachable vertices',24836,24844). | |
996 | predicate(global_url,3,'Translate a possibly relative URL into an absolute one.',24867,24871). | |
997 | predicate(is_absolute_url,1,'True if URL is an absolute URL.',24873,24876). | |
998 | predicate(http_location,2,'Construct or analyze an HTTP location.',24878,24889). | |
999 | predicate(parse_url,2,'Construct or analyse a URL.',24891,24948). | |
1000 | predicate(parse_url,3,'Similar to parse_url/2 for relative URLs.',24950,24953). | |
1001 | predicate(www_form_encode,2,'En/decode to/from application/x-www-form-encoded.',24955,24956). | |
1002 | predicate(www_form_encode,2,'En/decode to/from application/x-www-form-encoded.',24958,24969). | |
1003 | predicate(set_url_encoding,2,'Query and set the encoding for URLs.',24971,24978). | |
1004 | predicate(url_iri,2,'Convert between a URL, encoding in US-ASCII and an IRI.',24980,24981). | |
1005 | predicate(url_iri,2,'Convert between a URL, encoding in US-ASCII and an IRI.',24983,24987). | |
1006 | predicate(parse_url_search,2,'Construct or analyze an HTTP search specification.',24989,24993). | |
1007 | predicate(file_name_to_url,2,'Translate between a filename and a file:Sidiv{} URL.',24995,24996). | |
1008 | predicate(file_name_to_url,2,'Translate between a filename and a file:Sidiv{} URL.',24998,25003). | |
1009 | predicate(numbervars,1,'Number variables in Term using $VAR(N).',25029,25034). | |
1010 | predicate(varnumbers,2,'Inverse of numbervars/1.',25036,25038). | |
1011 | predicate(varnumbers,3,'Inverse of numbervars/3.',25040,25051). | |
1012 | predicate(max_var_number,3,'True when Max is the max of Start and the highest numbered $VAR(N) term.',25053,25060). | |
1013 | predicate(prolog_current_frame,1,'Reference to goal\'s environment stack',25075,25081). | |
1014 | predicate(prolog_current_choice,1,'Reference to most recent choice point',25083,25087). | |
1015 | predicate(prolog_frame_attribute,3,'Obtain information on a goal environment',25089,25172). | |
1016 | predicate(prolog_choice_attribute,3,'Examine the choice point stack',25174,25196). | |
1017 | predicate(deterministic,1,'Test deterministicy of current clause',25198,25205). | |
1018 | predicate(prolog_cut_to,1,'Realise global cuts',25210,25216). | |
1019 | predicate(prolog_trace_interception,4,'library(user) Intercept the Prolog tracer',25309,25418). | |
1020 | predicate(prolog_skip_frame,1,'Perform `skip\' on a frame',25420,25427). | |
1021 | predicate(prolog_skip_level,2,'Indicate deepest recursion to trace',25429,25436). | |
1022 | predicate(break_hook,6,'',25448,25525). | |
1023 | predicate(prolog_exception_hook,4,'Rewrite exceptions',25535,25578). | |
1024 | predicate(exception,3,'Hook (user) Handle runtime exceptions',25593,25619). | |
1025 | predicate(prolog_list_goal,1,'Hook (user) Intercept tracer \'L\' command',25631,25637). | |
1026 | predicate(debug_control_hook,1,'Hook (prolog) Extend spy/1, etc.',25639,25665). | |
1027 | predicate(help_hook,1,'Hook (prolog) User-hook in the help-system',25667,25682). | |
1028 | predicate(prolog_load_file,2,'Hook (user) Program load_files/2',25691,25702). | |
1029 | predicate(comment_hook,3,'Hook (prolog) handle comments in sources',25704,25723). | |
1030 | predicate(rl_read_init_file,1,'Read readline(3) init file',25733,25737). | |
1031 | predicate(rl_add_history,1,'Add line to readline(3) history',25739,25742). | |
1032 | predicate(rl_write_history,1,'Write readline(3) history',25744,25747). | |
1033 | predicate(rl_read_history,1,'Read readline(3) history',25749,25751). | |
1034 | predicate(expects_dialect,1,'For which Prolog dialect is this code written?',25794,25820). | |
1035 | predicate(exists_source,1,'Check existence of a Prolog source',25822,25826). | |
1036 | predicate(source_exports,2,'Check whether source exports a predicate',25828,25831). | |
1037 | predicate(eval_license,0,'Evaluate licenses of loaded modules',26331,26337). | |
1038 | predicate(license,2,'Define license for named module',26339,26391). | |
1039 | predicate(license,1,'Define license for current file',26393,26396). | |
195 | predicate(open,4,'Open a file (creating a stream)',6931,7039). | |
196 | predicate(open,3,'Open a file (creating a stream)',7041,7043). | |
197 | predicate(open_null_stream,1,'Open a stream to discard output',7045,7063). | |
198 | predicate(close,1,'Close stream',7065,7073). | |
199 | predicate(close,2,'Close stream (forced)',7075,7079). | |
200 | predicate(stream_property,2,'Get stream properties',7081,7194). | |
201 | predicate(current_stream,3,'Examine open streams',7196,7203). | |
202 | predicate(is_stream,1,'Type check for a stream handle',7205,7209). | |
203 | predicate(stream_pair,3,'Create/examine a bi-directional stream',7211,7218). | |
204 | predicate(set_stream_position,2,'Seek stream to position',7220,7224). | |
205 | predicate(stream_position_data,3,'Access fields from stream position',7226,7232). | |
206 | predicate(seek,4,'Modify the current position in a stream',7234,7262). | |
207 | predicate(set_stream,2,'Set stream attribute',7264,7359). | |
208 | predicate(set_prolog_IO,3,'Prepare streams for interactive session',7361,7372). | |
209 | predicate(see,1,'Change the current input stream',7451,7456). | |
210 | predicate(tell,1,'Change current output stream',7458,7463). | |
211 | predicate(append,1,'Append to a file',7465,7469). | |
212 | predicate(seeing,1,'Query the current input stream',7471,7476). | |
213 | predicate(telling,1,'Query current output stream',7478,7483). | |
214 | predicate(seen,0,'Close the current input stream',7485,7488). | |
215 | predicate(told,0,'Close current output',7490,7493). | |
216 | predicate(set_input,1,'Set current input stream from a stream',7501,7505). | |
217 | predicate(set_output,1,'Set current output stream from a stream',7507,7510). | |
218 | predicate(current_input,1,'Get current input stream',7512,7515). | |
219 | predicate(current_output,1,'Get the current output stream',7517,7519). | |
220 | predicate(with_output_to,2,'Write to strings and more',7524,7574). | |
221 | predicate(wait_for_input,3,'Wait for input with optional timeout',7579,7621). | |
222 | predicate(byte_count,2,'Byte-position in a stream',7623,7628). | |
223 | predicate(character_count,2,'Get character index on a stream',7630,7635). | |
224 | predicate(line_count,2,'Line number on stream',7637,7640). | |
225 | predicate(line_position,2,'Character position in line on stream',7642,7647). | |
226 | predicate(nl,0,'Generate a newline',7654,7657). | |
227 | predicate(nl,1,'Generate a newline on a stream',7659,7661). | |
228 | predicate(put,1,'Write a character',7663,7668). | |
229 | predicate(put,2,'Write a character on a stream',7670,7672). | |
230 | predicate(put_byte,1,'Write a byte',7674,7677). | |
231 | predicate(put_byte,2,'Write a byte on a stream',7679,7682). | |
232 | predicate(put_char,1,'Write a character',7684,7689). | |
233 | predicate(put_char,2,'Write a character on a stream',7691,7695). | |
234 | predicate(put_code,1,'Write a character-code',7697,7701). | |
235 | predicate(put_code,2,'Write a character-code on a stream',7703,7705). | |
236 | predicate(tab,1,'Output number of spaces',7707,7711). | |
237 | predicate(tab,2,'Output number of spaces on a stream',7713,7715). | |
238 | predicate(flush_output,0,'Output pending characters on current stream',7717,7721). | |
239 | predicate(flush_output,1,'Output pending characters on specified stream',7723,7726). | |
240 | predicate(ttyflush,0,'Flush output on terminal',7728,7730). | |
241 | predicate(get_byte,1,'Read next byte (ISO)',7732,7736). | |
242 | predicate(get_byte,2,'Read next byte from a stream (ISO)',7738,7741). | |
243 | predicate(get_code,1,'Read next character (ISO)',7743,7747). | |
244 | predicate(get_code,2,'Read next character from a stream (ISO)',7749,7751). | |
245 | predicate(get_char,1,'Read next character as an atom (ISO)',7753,7757). | |
246 | predicate(get_char,2,'Read next character from a stream (ISO)',7759,7762). | |
247 | predicate(get0,1,'Read next character',7764,7769). | |
248 | predicate(get0,2,'Read next character from a stream',7771,7774). | |
249 | predicate(get,1,'Read first non-blank character',7776,7780). | |
250 | predicate(get,2,'Read first non-blank character from a stream',7782,7785). | |
251 | predicate(peek_byte,1,'Read byte without removing',7787,7788). | |
252 | predicate(peek_byte,2,'Read byte without removing',7790,7791). | |
253 | predicate(peek_code,1,'Read character-code without removing',7793,7794). | |
254 | predicate(peek_code,2,'Read character-code without removing',7796,7797). | |
255 | predicate(peek_char,1,'Read character without removing',7799,7800). | |
256 | predicate(peek_char,2,'Read character without removing',7802,7809). | |
257 | predicate(skip,1,'Skip to character in current input',7811,7815). | |
258 | predicate(skip,2,'Skip to character on stream',7817,7819). | |
259 | predicate(get_single_char,1,'Read next character from the terminal',7821,7830). | |
260 | predicate(at_end_of_stream,0,'Test for end of file on input',7832,7836). | |
261 | predicate(at_end_of_stream,1,'Test for end of file on stream',7838,7843). | |
262 | predicate(set_end_of_stream,1,'Set physical end of an open file',7845,7849). | |
263 | predicate(copy_stream_data,3,'Copy n bytes from stream to stream',7851,7856). | |
264 | predicate(copy_stream_data,2,'Copy all data from stream to stream',7858,7860). | |
265 | predicate(read_pending_input,3,'Fetch buffered input from a stream',7862,7888). | |
266 | predicate(write_term,2,'Write term with options',7902,8043). | |
267 | predicate(write_term,3,'Write term with options to stream',8045,8048). | |
268 | predicate(write_length,3,'Dermine #characters to output a term',8050,8059). | |
269 | predicate(write_canonical,1,'Write a term with quotes, ignore operators',8061,8075). | |
270 | predicate(write_canonical,2,'Write a term with quotes, ignore operators on a stream',8077,8079). | |
271 | predicate(write,1,'Write term',8081,8084). | |
272 | predicate(write,2,'Write term to stream',8086,8088). | |
273 | predicate(writeq,1,'Write term, insert quotes',8090,8095). | |
274 | predicate(writeq,2,'Write term, insert quotes on stream',8097,8099). | |
275 | predicate(writeln,1,'Write term, followed by a newline',8101,8103). | |
276 | predicate(print,1,'Print a term',8105,8111). | |
277 | predicate(print,2,'Print a term on a stream',8113,8115). | |
278 | predicate(portray,1,'Hook (user) Modify behaviour of print/1',8117,8124). | |
279 | predicate(read,1,'Read Prolog term',8126,8131). | |
280 | predicate(read,2,'Read Prolog term from stream',8133,8135). | |
281 | predicate(read_clause,3,'Read clause from stream',8137,8167). | |
282 | predicate(read_term,2,'Read term with options',8169,8286). | |
283 | predicate(read_term,3,'Read term with options from stream',8288,8290). | |
284 | predicate(read_term_from_atom,3,'Read term with options from atom',8292,8297). | |
285 | predicate(read_history,6,'Read using history substitution',8299,8314). | |
286 | predicate(prompt,2,'Change the prompt used by read/1',8316,8324). | |
287 | predicate(prompt1,1,'Change prompt for 1 line',8326,8329). | |
288 | predicate(functor,3,'Get name and arity of a term or construct a term ',8334,8341). | |
289 | predicate(arg,3,'Access argument of a term',8343,8352). | |
290 | predicate(=..,2,'``Univ.\'\' Term to list conversion',8354,8369). | |
291 | predicate(numbervars,3,'Number unbound variables of a term',8371,8385). | |
292 | predicate(numbervars,4,'Number unbound variables of a term',8387,8406). | |
293 | predicate(var_number,2,'Check that var is numbered by numbervars',8408,8414). | |
294 | predicate(term_variables,2,'Find unbound variables in a term',8416,8426). | |
295 | predicate(term_variables,3,'Find unbound variables in a term',8428,8431). | |
296 | predicate(copy_term,2,'Make a copy of a term',8433,8442). | |
297 | predicate(setarg,3,'Destructive assignment on term',8454,8470). | |
298 | predicate(nb_setarg,3,'Non-backtrackable assignment to term',8472,8502). | |
299 | predicate(nb_linkarg,3,'Non-backtrackable assignment to term',8504,8508). | |
300 | predicate(duplicate_term,2,'Create a copy of a term',8510,8515). | |
301 | predicate(same_term,2,'Test terms to be at the same address',8517,8522). | |
302 | predicate(atom_codes,2,'Convert between atom and list of characters codes',8545,8551). | |
303 | predicate(atom_chars,2,'Convert between atom and list of characters',8553,8561). | |
304 | predicate(char_code,2,'Convert between character and character code',8563,8566). | |
305 | predicate(number_chars,2,'Convert between number and one-char atoms',8568,8575). | |
306 | predicate(number_codes,2,'Convert between number and character codes',8577,8581). | |
307 | predicate(atom_number,2,'Convert between atom and number',8583,8590). | |
308 | predicate(name,2,'Convert between atom and list of character codes',8592,8609). | |
309 | predicate(term_to_atom,2,'Convert between term and atom',8611,8617). | |
310 | predicate(atom_to_term,3,'Convert between atom and term',8619,8626). | |
311 | predicate(atom_concat,3,'Append two atoms',8628,8635). | |
312 | predicate(atomic_concat,3,'Concatenate two atomic values to an atom',8637,8645). | |
313 | predicate(atomic_list_concat,2,'Append a list of atoms',8647,8651). | |
314 | predicate(atomic_list_concat,3,'Append a list of atoms with separator',8653,8674). | |
315 | predicate(atom_length,2,'Determine length of an atom',8676,8682). | |
316 | predicate(atom_prefix,2,'Test for start of atom',8684,8687). | |
317 | predicate(sub_atom,5,'Take a substring from an atom',8689,8703). | |
318 | predicate(sub_atom_icasechk,3,'Case insensitive substring match',8705,8711). | |
319 | predicate(locale_create,3,'Create a new locale object',8741,8775). | |
320 | predicate(locale_destroy,1,'Destroy a locale object',8777,8781). | |
321 | predicate(locale_property,2,'Query properties of locale objects',8783,8786). | |
322 | predicate(set_locale,1,'Set the default local',8788,8794). | |
323 | predicate(current_locale,1,'Get the current locale',8796,8798). | |
324 | predicate(char_type,2,'Classify characters',8813,8921). | |
325 | predicate(code_type,2,'Classify a character-code',8923,8930). | |
326 | predicate(downcase_atom,2,'Convert atom to lower-case',8940,8945). | |
327 | predicate(upcase_atom,2,'Convert atom to upper-case',8947,8949). | |
328 | predicate(normalize_space,2,'Normalize white space',8954,8959). | |
329 | predicate(collation_key,2,'Sort key for locale dependent ordering',8967,8980). | |
330 | predicate(locale_sort,2,'Language dependent sort of atoms',8982,8987). | |
331 | predicate(atom_string,2,'Conversion between atom and string',9033,9037). | |
332 | predicate(string_codes,2,'Conversion between string and list of character codes',9039,9042). | |
333 | predicate(string_length,2,'Determine length of a string',9044,9048). | |
334 | predicate(string_code,3,'Get or find a character code in a string',9050,9059). | |
335 | predicate(string_concat,3,'atom_concat/3 for strings',9061,9070). | |
336 | predicate(sub_string,5,'Take a substring from a string',9072,9076). | |
337 | predicate(op,3,'Declare an operator',9114,9179). | |
338 | predicate(current_op,3,'Examine current operator declarations',9181,9184). | |
339 | predicate(char_conversion,2,'Provide mapping of input characters',9192,9198). | |
340 | predicate(current_char_conversion,2,'Query input character mapping',9200,9203). | |
341 | predicate(between,3,'Integer range checking/generating',9223,9230). | |
342 | predicate(succ,2,'Logical integer successor relation',9232,9238). | |
343 | predicate(plus,3,'Logical integer addition',9240,9243). | |
344 | predicate(>,2,'Arithmetic larger',9254,9256). | |
345 | predicate(<,2,'Arithmetic smaller',9258,9260). | |
346 | predicate(=<,2,'Arithmetic smaller or equal',9262,9265). | |
347 | predicate(>=,2,'Arithmetic larger or equal',9267,9270). | |
348 | predicate(=\=,2,'Arithmetic not equal',9272,9274). | |
349 | predicate(=:=,2,'Arithmetic equal',9276,9278). | |
350 | predicate(is,2,'Evaluate arithmetic expression',9280,9289). | |
351 | predicate(-,1,'Unary minus',9405,9407). | |
352 | predicate(+,1,'Unary plus (No-op)',9409,9412). | |
353 | predicate(+,2,'Addition',9414,9416). | |
354 | predicate(-,2,'Subtraction',9418,9420). | |
355 | predicate(*,2,'Multiplication',9422,9424). | |
356 | predicate(/,2,'Division',9426,9434). | |
357 | predicate(mod,2,'Remainder of division',9436,9439). | |
358 | predicate(rem,2,'Remainder of division',9441,9444). | |
359 | predicate(//,2,'Integer division',9446,9451). | |
360 | predicate(div,2,'Integer division',9453,9466). | |
361 | predicate(rdiv,2,'Ration number division',9468,9472). | |
362 | predicate(gcd,2,'Greatest common divisor',9474,9476). | |
363 | predicate(abs,1,'Absolute value',9478,9480). | |
364 | predicate(sign,1,'Extract sign of value',9482,9487). | |
365 | predicate(copysign,2,'Apply sign of N2 to N1',9489,9500). | |
366 | predicate(max,2,'Maximum of two numbers',9502,9507). | |
367 | predicate(min,2,'Minimum of two numbers',9509,9512). | |
368 | predicate('.',2,'Consult. Also list constructor',9514,9523). | |
369 | predicate(random,1,'Binds R to a new random float in the _open_ interval (0.0,1.0).',9525,9537). | |
370 | predicate(random_float,0,'Generate random number',9539,9545). | |
371 | predicate(round,1,'Round to nearest integer',9547,9549). | |
372 | predicate(integer,1,'Type check for integer',9551,9553). | |
373 | predicate(float,1,'Type check for a floating point number',9555,9560). | |
374 | predicate(rational,1,'Type check for a rational number',9562,9580). | |
375 | predicate(rationalize,1,'Convert to rational number',9582,9596). | |
376 | predicate(float_fractional_part,1,'Fractional part of a float',9598,9603). | |
377 | predicate(float_integer_part,1,'Integer part of a float',9605,9608). | |
378 | predicate(truncate,1,'Truncate float to integer',9610,9614). | |
379 | predicate(floor,1,'Largest integer below argument',9616,9619). | |
380 | predicate(ceiling,1,'Smallest integer larger than arg',9621,9624). | |
381 | predicate(ceil,1,'Smallest integer larger than arg',9626,9628). | |
382 | predicate(>>,2,'Bitwise right shift',9630,9635). | |
383 | predicate(<<,2,'Bitwise left shift',9637,9639). | |
384 | predicate(\/,2,'Bitwise or',9641,9643). | |
385 | predicate(/\,2,'Bitwise and',9645,9647). | |
386 | predicate(xor,2,'Bitwise exclusive or',9649,9651). | |
387 | predicate(\,1,'Bitwise negation',9653,9656). | |
388 | predicate(sqrt,1,'Square root',9658,9660). | |
389 | predicate(sin,1,'Sine',9662,9664). | |
390 | predicate(cos,1,'Cosine',9666,9668). | |
391 | predicate(tan,1,'Tangent',9670,9672). | |
392 | predicate(asin,1,'Inverse (arc) sine',9674,9676). | |
393 | predicate(acos,1,'Inverse (arc) cosine',9678,9680). | |
394 | predicate(atan,1,'Inverse hyperbolic sine',9682,9684). | |
395 | predicate(atan2,2,'Rectangular to polar conversion',9686,9690). | |
396 | predicate(atan,2,'Rectangular to polar conversion',9692,9694). | |
397 | predicate(sinh,1,'Hyperbolic sine',9696,9699). | |
398 | predicate(cosh,1,'Hyperbolic cosine',9701,9704). | |
399 | predicate(tanh,1,'Hyperbolic tangent',9706,9709). | |
400 | predicate(asinh,1,'Inverse (arc) sine',9711,9713). | |
401 | predicate(acosh,1,'Inverse hyperbolic cosine',9715,9717). | |
402 | predicate(atanh,1,'Inverse hyperbolic tangent',9719,9721). | |
403 | predicate(log,1,'Natural logarithm',9723,9725). | |
404 | predicate(log10,1,'10 base logarithm',9727,9729). | |
405 | predicate(exp,1,'Exponent (base $e$)',9731,9733). | |
406 | predicate(**,2,'Power function',9735,9750). | |
407 | predicate(^,2,'Existential quantification (bagof/3, setof/3)',9752,9770). | |
408 | predicate(powm,3,'Integer exponent and modulo',9772,9777). | |
409 | predicate(lgamma,1,'',9779,9782). | |
410 | predicate(erf,1,'',9784,9789). | |
411 | predicate(erfc,1,'',9791,9793). | |
412 | predicate(pi,0,'Mathematical constant',9795,9797). | |
413 | predicate(e,0,'Mathematical constant',9799,9801). | |
414 | predicate(epsilon,0,'Floating point precision',9803,9806). | |
415 | predicate(cputime,0,'Get CPU time',9808,9812). | |
416 | predicate(eval,1,'Evaluate term as expression',9814,9826). | |
417 | predicate(msb,1,'Most significant bit',9828,9833). | |
418 | predicate(lsb,1,'Least significant bit',9835,9840). | |
419 | predicate(popcount,1,'Count 1s in a bitvector',9842,9845). | |
420 | predicate(set_random,1,'Control random number generation',9850,9872). | |
421 | predicate(random_property,1,'Query properties of random generation',9874,9886). | |
422 | predicate(current_arithmetic_function,1,'Examine evaluable functions',9888,9895). | |
423 | predicate(is_list,1,'Type check for a list',9904,9918). | |
424 | predicate(memberchk,2,'Deterministic member/2',9920,9928). | |
425 | predicate(length,2,'Length of a list',9930,9947). | |
426 | predicate(sort,2,'Sort elements in a list',9949,9955). | |
427 | predicate(msort,2,'Sort, do not remove duplicates',9957,9960). | |
428 | predicate(keysort,2,'Sort, using a key',9962,9984). | |
429 | predicate(predsort,3,'Sort, using a predicate to determine the order',9986,9991). | |
430 | predicate(findall,3,'Find all solutions to a goal',9996,10003). | |
431 | predicate(findall,4,'Difference list version of findall/3',10005,10013). | |
432 | predicate(bagof,3,'Find all solutions to a goal',10015,10047). | |
433 | predicate(setof,3,'Find all unique solutions to a goal',10049,10052). | |
434 | predicate(forall,2,'Prove goal for all solutions of another goal',10057,10098). | |
435 | predicate(writef,1,'Formatted write',10113,10115). | |
436 | predicate(writef,2,'Formatted write on stream',10117,10176). | |
437 | predicate(swritef,3,'Formatted write on a string',10178,10186). | |
438 | predicate(swritef,2,'Formatted write on a string',10188,10190). | |
439 | predicate(format,1,'Formatted output',10198,10201). | |
440 | predicate(format,2,'Formatted output with arguments',10203,10374). | |
441 | predicate(format,3,'Formatted output on a stream',10376,10386). | |
442 | predicate(format_predicate,2,'Program format/[1,2]',10391,10420). | |
443 | predicate(current_format_predicate,2,'Enumerate user-defined format codes',10422,10425). | |
444 | predicate(tty_get_capability,3,'Get terminal parameter',10435,10443). | |
445 | predicate(tty_goto,2,'Goto position on screen',10445,10449). | |
446 | predicate(tty_put,2,'Write control string to terminal',10451,10457). | |
447 | predicate(tty_size,2,'Get row/column size of the terminal',10459,10473). | |
448 | predicate(shell,2,'Execute OS command',10478,10507). | |
449 | predicate(shell,1,'Execute OS command',10509,10511). | |
450 | predicate(shell,0,'Execute interactive subshell',10513,10517). | |
451 | predicate(getenv,2,'Get shell environment variable',10519,10523). | |
452 | predicate(setenv,2,'Set shell environment variable',10525,10534). | |
453 | predicate(unsetenv,1,'Delete shell environment variable',10536,10540). | |
454 | predicate(setlocale,3,'Set/query C-library regional information',10542,10554). | |
455 | predicate(unix,1,'OS interaction',10556,10597). | |
456 | predicate(win_exec,2,'Win32: spawn Windows task',10608,10615). | |
457 | predicate(win_shell,3,'Win32: open document through Shell',10617,10626). | |
458 | predicate(win_shell,2,'Win32: open document through Shell',10628,10630). | |
459 | predicate(win_registry_get_value,3,'Win32: get registry value',10632,10653). | |
460 | predicate(win_folder,2,'Win32: get special folder by CSIDL',10655,10668). | |
461 | predicate(win_add_dll_directory,1,'Add directory to DLL search path',10670,10679). | |
462 | predicate(win_add_dll_directory,2,'Add directory to DLL search path',10681,10704). | |
463 | predicate(win_remove_dll_directory,1,'',10706,10709). | |
464 | predicate(get_time,1,'Get current time',10783,10786). | |
465 | predicate(stamp_date_time,3,'Convert time-stamp to date structure',10788,10794). | |
466 | predicate(date_time_stamp,2,'Convert sate structure to time-stamp',10796,10847). | |
467 | predicate(date_time_value,3,'Extract info from a date structure',10849,10866). | |
468 | predicate(format_time,3,'C strftime() like date/time formatter',10868,11030). | |
469 | predicate(format_time,4,'date/time formatter with explicit locale',11032,11041). | |
470 | predicate(parse_time,2,'Parse text to a time-stamp',11043,11045). | |
471 | predicate(parse_time,3,'Parse text to a time-stamp',11047,11066). | |
472 | predicate(day_of_the_week,2,'Determine ordinal-day from date',11068,11073). | |
473 | predicate(window_title,2,'Win32: change title of window',11084,11087). | |
474 | predicate(win_window_pos,1,'Win32: change size and position of window',11089,11112). | |
475 | predicate(win_has_menu,0,'Win32: true if console menu is available',11114,11116). | |
476 | predicate(win_insert_menu,2,'swipl-win.exe: add menu',11118,11129). | |
477 | predicate(win_insert_menu_item,4,'swipl-win.exe: add item to menu',11131,11135). | |
478 | predicate(access_file,2,'Check access permissions of a file',11140,11150). | |
479 | predicate(exists_file,1,'Check existence of file',11152,11155). | |
480 | predicate(file_directory_name,2,'Get directory part of path',11157,11174). | |
481 | predicate(file_base_name,2,'Get file part of path',11176,11180). | |
482 | predicate(same_file,2,'Succeeds if arguments refer to same file',11182,11191). | |
483 | predicate(exists_directory,1,'Check existence of directory',11193,11196). | |
484 | predicate(delete_file,1,'Remove a file from the file system',11198,11200). | |
485 | predicate(rename_file,2,'Change name of file',11202,11208). | |
486 | predicate(size_file,2,'Get size of a file in characters',11210,11212). | |
487 | predicate(time_file,2,'Get last modification time of file',11214,11218). | |
488 | predicate(absolute_file_name,2,'Get absolute path name',11220,11228). | |
489 | predicate(absolute_file_name,3,'Get absolute path name with options',11230,11287). | |
490 | predicate(is_absolute_file_name,1,'True if arg defines an absolute path',11289,11295). | |
491 | predicate(file_name_extension,3,'Add, remove or test file extensions',11297,11305). | |
492 | predicate(directory_files,2,'Get entries of a directory/folder',11307,11313). | |
493 | predicate(expand_file_name,2,'Wildcard expansion of file names',11315,11332). | |
494 | predicate(prolog_to_os_filename,2,'Convert between Prolog and OS filenames',11334,11340). | |
495 | predicate(read_link,3,'Read a symbolic link',11342,11348). | |
496 | predicate(tmp_file,2,'Create a temporary filename',11350,11360). | |
497 | predicate(tmp_file_stream,3,'Create a temporary file and open it',11362,11389). | |
498 | predicate(make_directory,1,'Create a folder on the file system',11391,11395). | |
499 | predicate(delete_directory,1,'Remove a folder from the file system',11397,11401). | |
500 | predicate(working_directory,2,'Query/change CWD',11403,11409). | |
501 | predicate(chdir,1,'Compatibility: change working directory',11411,11413). | |
502 | predicate(break,0,'Start interactive top level',11418,11426). | |
503 | predicate(abort,0,'Abort execution, return to top level',11428,11445). | |
504 | predicate(halt,0,'Exit from Prolog',11447,11450). | |
505 | predicate(halt,1,'Exit from Prolog with status',11452,11481). | |
506 | predicate(prolog,0,'Run interactive top level',11483,11492). | |
507 | predicate(expand_query,4,'Expanded entered query',11494,11502). | |
508 | predicate(expand_answer,2,'Expand answer of query',11504,11509). | |
509 | predicate(protocol,1,'Make a log of the user interaction',11518,11521). | |
510 | predicate(protocola,1,'Append log of the user interaction to file',11523,11526). | |
511 | predicate(noprotocol,0,'Disable logging of user interaction',11528,11531). | |
512 | predicate(protocolling,1,'On what file is user interaction logged',11533,11536). | |
513 | predicate(trace,0,'Start the tracer',11547,11551). | |
514 | predicate(tracing,0,'Query status of the tracer',11553,11556). | |
515 | predicate(notrace,0,'Stop tracing',11558,11560). | |
516 | predicate(guitracer,0,'Install hooks for the graphical debugger',11562,11567). | |
517 | predicate(noguitracer,0,'Disable the graphical debugger',11569,11571). | |
518 | predicate(trace,1,'Set trace point on predicate',11573,11575). | |
519 | predicate(trace,2,'Set/Clear trace point on ports',11577,11597). | |
520 | predicate(notrace,1,'Do not debug argument goal',11599,11604). | |
521 | predicate(debug,0,'Test for debugging mode',11606,11620). | |
522 | predicate(nodebug,0,'Disable debugging',11622,11625). | |
523 | predicate(debugging,0,'Show debugger status',11627,11630). | |
524 | predicate(spy,1,'Force tracer on specified predicate',11632,11635). | |
525 | predicate(nospy,1,'Remove spy point',11637,11640). | |
526 | predicate(nospyall,0,'Remove all spy points',11642,11644). | |
527 | predicate(leash,1,'Change ports visited by the tracer',11646,11654). | |
528 | predicate(visible,1,'Ports that are visible in the tracer',11656,11659). | |
529 | predicate(unknown,2,'Trap undefined predicates',11661,11666). | |
530 | predicate(style_check,1,'Change level of warnings',11668,11752). | |
531 | predicate(statistics,2,'Obtain collected statistics',11757,11844). | |
532 | predicate(statistics,0,'Show execution statistics',11846,11848). | |
533 | predicate(time,1,'Determine time needed to execute goal',11850,11858). | |
534 | predicate(profile,1,'Obtain execution statistics',11876,11880). | |
535 | predicate(profile,2,'Obtain execution statistics',11882,11895). | |
536 | predicate(show_profile,1,'Show results of the profiler',11897,11909). | |
537 | predicate(profiler,2,'Obtain/change status of the profiler',11911,11925). | |
538 | predicate(reset_profiler,0,'Clear statistics obtained by the profiler',11927,11929). | |
539 | predicate(noprofile,1,'Hide (meta-) predicate for the profiler',11931,11937). | |
540 | predicate(garbage_collect,0,'Invoke the garbage collector',12040,12047). | |
541 | predicate(garbage_collect_atoms,0,'Invoke the atom garbage collector',12049,12057). | |
542 | predicate(trim_stacks,0,'Release unused memory resources',12059,12077). | |
543 | predicate(set_prolog_stack,2,'Modify stack characteristics',12079,12118). | |
544 | predicate(prolog_stack_property,2,'Query properties of the stacks',12120,12123). | |
545 | predicate(open_dde_conversation,3,'Win32: Open DDE channel',12169,12174). | |
546 | predicate(close_dde_conversation,1,'Win32: Close DDE channel',12176,12181). | |
547 | predicate(dde_request,3,'Win32: Make a DDE request',12183,12187). | |
548 | predicate(dde_execute,2,'Win32: Execute command on DDE server',12189,12193). | |
549 | predicate(dde_poke,3,'Win32: POKE operation on DDE server',12195,12198). | |
550 | predicate(dde_register_service,2,'Win32: Become a DDE server',12209,12246). | |
551 | predicate(dde_unregister_service,1,'Win32: Terminate a DDE service',12248,12251). | |
552 | predicate(dde_current_service,2,'Win32: Examine DDE services provided',12253,12255). | |
553 | predicate(dde_current_connection,2,'Win32: Examine open DDE connections',12257,12259). | |
554 | predicate(dwim_match,2,'Atoms match in ``Do What I Mean\'\' sense',12264,12282). | |
555 | predicate(dwim_match,3,'Atoms match in ``Do What I Mean\'\' sense',12284,12289). | |
556 | predicate(wildcard_match,2,'Csh(1) style wildcard match',12291,12307). | |
557 | predicate(sleep,1,'Suspend execution for specified time',12309,12319). | |
558 | predicate(module,2,'Declare a module',12400,12413). | |
559 | predicate(module,3,'Declare a module with language options',12415,12424). | |
560 | predicate(use_module,1,'Import a module',12440,12484). | |
561 | predicate(use_module,2,'Import predicates from a module',12486,12512). | |
562 | predicate(meta_predicate,1,'Declare access to other predicates',12565,12642). | |
563 | predicate(@,2,'Call using calling context',12686,12701). | |
564 | predicate(module,1,'Query/set current type-in module',12719,12731). | |
565 | predicate(reexport,1,'Load files and re-export the imported predicates',12754,12758). | |
566 | predicate(reexport,2,'Load predicates from a file and re-export it',12760,12764). | |
567 | predicate(import_module,2,'Query import modules',12819,12824). | |
568 | predicate(default_module,2,'Query module inheritance',12826,12831). | |
569 | predicate(add_import_module,3,'Add module to the auto-import list',12833,12837). | |
570 | predicate(delete_import_module,2,'Remove module from import list',12839,12846). | |
571 | predicate(export,1,'Export a predicate from a module',12875,12881). | |
572 | predicate(import,1,'Import a predicate from a module',12883,12890). | |
573 | predicate(module_transparent,1,'Indicate module based meta-predicate',13001,13005). | |
574 | predicate(context_module,1,'Get context module of current goal',13007,13010). | |
575 | predicate(strip_module,3,'Extract context module and term',13012,13018). | |
576 | predicate(current_module,1,'Examine existing modules',13026,13031). | |
577 | predicate(module_property,2,'Find properties of a module',13033,13071). | |
578 | predicate(set_module,1,'Set properties of a module',13073,13083). | |
579 | predicate(attvar,1,'Type test for attributed variable',13276,13280). | |
580 | predicate(put_attr,3,'Put attribute on a variable',13282,13290). | |
581 | predicate(get_attr,3,'Fetch named attribute from a variable',13292,13297). | |
582 | predicate(del_attr,2,'Delete attribute from variable',13299,13305). | |
583 | predicate(attr_unify_hook,2,'Attributed variable unification hook',13314,13325). | |
584 | predicate(attr_portray_hook,2,'Attributed variable print hook',13327,13334). | |
585 | predicate(attribute_goals,3,'Project attributes to goals',13336,13341). | |
586 | predicate(copy_term,3,'Copy a term and obtain attribute-goals',13346,13358). | |
587 | predicate(copy_term_nat,2,'Make a copy of a term without attributes',13360,13363). | |
588 | predicate(term_attvars,2,'Find attributed variables in a term',13365,13372). | |
589 | predicate(get_attrs,2,'Fetch all attributes of a variable',13382,13386). | |
590 | predicate(put_attrs,2,'Set/replace all attributes on a variable',13388,13391). | |
591 | predicate(del_attrs,1,'Delete all attributes from variable',13393,13396). | |
592 | predicate(freeze,2,'Delay execution until variable is bound',13416,13423). | |
593 | predicate(frozen,2,'Query delayed goals on var',13425,13428). | |
594 | predicate(when,2,'Execute goal when condition becomes true',13430,13439). | |
595 | predicate(dif,2,'Constrain two terms to be different',13441,13453). | |
596 | predicate(call_residue_vars,2,'Find residual attributed variables',13455,13473). | |
597 | predicate(b_setval,2,'Assign backtrackable global variable',13514,13520). | |
598 | predicate(b_getval,2,'Fetch backtrackable global variable',13522,13529). | |
599 | predicate(nb_setval,2,'Assign non-backtrackable global variable',13531,13535). | |
600 | predicate(nb_getval,2,'Fetch non-backtrackable global variable',13537,13543). | |
601 | predicate(nb_linkval,2,'Assign non-backtrackable global variable',13545,13566). | |
602 | predicate(nb_current,2,'Enumerate non-backtrackable global variables',13568,13571). | |
603 | predicate(nb_delete,1,'Delete a non-backtrackable global variable',13573,13575). | |
604 | predicate(chr_option,2,'Specify CHR compilation options',13783,13821). | |
605 | predicate(chr_constraint,1,'CHR Constraint declaration',13836,13911). | |
606 | predicate(chr_type,1,'CHR Type declaration',13913,14042). | |
607 | predicate(chr_trace,0,'Start CHR tracer',14179,14183). | |
608 | predicate(chr_notrace,0,'Stop CHR tracer',14185,14189). | |
609 | predicate(chr_leash,1,'Define CHR leashed ports',14191,14198). | |
610 | predicate(chr_show_store,1,'List suspended CHR constraints',14200,14207). | |
611 | predicate(find_chr_constraint,1,'Returns a constraint from the store',14209,14212). | |
612 | predicate(thread_create,3,'Create a new Prolog task',14510,14591). | |
613 | predicate(thread_self,1,'Get identifier of current thread',14593,14596). | |
614 | predicate(thread_join,2,'Wait for Prolog task-completion',14598,14624). | |
615 | predicate(thread_detach,1,'Make thread cleanup after completion',14626,14638). | |
616 | predicate(thread_exit,1,'Terminate Prolog task with value',14640,14651). | |
617 | predicate(thread_initialization,1,'Run action at start of thread',14653,14662). | |
618 | predicate(thread_at_exit,1,'Register goal to be called at exit',14664,14679). | |
619 | predicate(thread_setconcurrency,2,'Number of active threads',14681,14688). | |
620 | predicate(thread_property,2,'Examine Prolog threads',14703,14744). | |
621 | predicate(thread_statistics,3,'Get statistics of another thread',14746,14751). | |
622 | predicate(mutex_statistics,0,'Print statistics on mutex usage',14753,14760). | |
623 | predicate(thread_send_message,2,'Send message to another thread',14777,14793). | |
624 | predicate(thread_get_message,1,'Wait for message',14795,14815). | |
625 | predicate(thread_peek_message,1,'Test for message',14817,14824). | |
626 | predicate(message_queue_create,1,'Create queue for thread communication',14826,14831). | |
627 | predicate(message_queue_create,2,'Create queue for thread communication',14833,14846). | |
628 | predicate(message_queue_destroy,1,'Destroy queue for thread communication',14848,14853). | |
629 | predicate(thread_get_message,2,'Wait for message in a queue',14855,14861). | |
630 | predicate(thread_get_message,3,'Wait for message in a queue',14863,14885). | |
631 | predicate(thread_peek_message,2,'Test for message in a queue',14887,14892). | |
632 | predicate(message_queue_property,2,'Query message queue properties',14894,14953). | |
633 | predicate(thread_signal,2,'Execute goal in another thread',14968,14986). | |
634 | predicate(thread_local,1,'Declare thread-specific clauses for a predicate',15006,15035). | |
635 | predicate(mutex_create,1,'Create a thread-synchronisation device',15069,15073). | |
636 | predicate(mutex_create,2,'Create a thread-synchronisation device',15075,15081). | |
637 | predicate(mutex_destroy,1,'Destroy a mutex',15083,15086). | |
638 | predicate(with_mutex,2,'Run goal while holding mutex',15088,15099). | |
639 | predicate(mutex_lock,1,'Become owner of a mutex',15101,15119). | |
640 | predicate(mutex_trylock,1,'Become owner of a mutex (non-blocking)',15121,15124). | |
641 | predicate(mutex_unlock,1,'Release ownership of mutex',15126,15130). | |
642 | predicate(mutex_unlock_all,0,'Release ownership of all mutexes',15132,15136). | |
643 | predicate(mutex_property,2,'Query mutex properties',15138,15152). | |
644 | predicate(threads,0,'List running threads',15161,15163). | |
645 | predicate(join_threads,0,'Join all terminated threads interactively',15165,15172). | |
646 | predicate(interactor,0,'Start new thread with console and top level',15174,15178). | |
647 | predicate(attach_console,0,'Attach I/O console to thread',15192,15207). | |
648 | predicate(tdebug,1,'Switch a thread into debug mode',15209,15217). | |
649 | predicate(tdebug,0,'Switch all threads into debug mode',15219,15221). | |
650 | predicate(tnodebug,1,'Switch off debug mode in a thread',15223,15225). | |
651 | predicate(tnodebug,0,'Switch off debug mode in all threads',15227,15229). | |
652 | predicate(tspy,2,'Set spy point and enable debugging in a thread',15231,15237). | |
653 | predicate(tspy,1,'Set spy point and enable debugging in all threads',15239,15244). | |
654 | predicate(tprofile,1,'Profile a thread for some period',15255,15259). | |
655 | predicate(in_pce_thread,1,'Run goal in XPCE thread',15455,15462). | |
656 | predicate(in_pce_thread_sync,1,'Run goal in XPCE thread',15464,15477). | |
657 | predicate(pce_dispatch,1,'Run XPCE GUI in separate thread',15479,15486). | |
658 | predicate(load_foreign_library,1,'library(shlib) Load shared library (.so file)',15630,15631). | |
659 | predicate(load_foreign_library,2,'library(shlib) Load shared library (.so file)',15633,15659). | |
660 | predicate(use_foreign_library,1,'Load DLL/shared object (directive)',15661,15662). | |
661 | predicate(use_foreign_library,2,'Load DLL/shared object (directive)',15664,15677). | |
662 | predicate(unload_foreign_library,1,'library(shlib) Detach shared library (.so file)',15679,15680). | |
663 | predicate(unload_foreign_library,2,'library(shlib) Detach shared library (.so file)',15682,15687). | |
664 | predicate(current_foreign_library,2,'library(shlib) Examine loaded shared libraries (.so files)',15689,15691). | |
665 | predicate(reload_foreign_libraries,0,'Reload DLLs/shared objects',15693,15696). | |
666 | predicate(open_shared_object,2,'UNIX: Open shared library (.so file)',15708,15717). | |
667 | predicate(open_shared_object,3,'UNIX: Open shared library (.so file)',15719,15728). | |
668 | predicate(close_shared_object,1,'UNIX: Close shared library (.so file)',15730,15732). | |
669 | predicate(call_shared_object_function,2,'UNIX: Call C-function in shared (.so) file',15734,15739). | |
670 | predicate(qsave_program,2,'Create runtime application',19540,19605). | |
671 | predicate(qsave_program,1,'Create runtime application',19607,19609). | |
672 | predicate(autoload,0,'Autoload all predicates now',19611,19660). | |
673 | predicate(volatile,1,'Predicates that are not saved',19662,19667). | |
674 | predicate(resource,3,'Declare a program resource',19791,19825). | |
675 | predicate(open_resource,3,'Open a program resource as a stream',19827,19846). | |
676 | predicate(aggregate,3,'Aggregate bindings in Goal according to Template.',20037,20040). | |
677 | predicate(aggregate,4,'Aggregate bindings in Goal according to Template.',20042,20045). | |
678 | predicate(aggregate_all,3,'Aggregate bindings in Goal according to Template.',20047,20050). | |
679 | predicate(aggregate_all,4,'Aggregate bindings in Goal according to Template.',20052,20056). | |
680 | predicate(foreach,2,'True if conjunction of results is true.',20058,20080). | |
681 | predicate(free_variables,4,'Find free variables in bagof/setof template.',20082,20106). | |
682 | predicate(safe_meta,2,'Declare the aggregate meta-calls safe.',20108,20111). | |
683 | predicate(include,3,'Filter elements for which Goal succeeds.',20126,20132). | |
684 | predicate(exclude,3,'Filter elements for which Goal fails.',20134,20137). | |
685 | predicate(partition,4,'Filter elements of List according to Pred.',20139,20143). | |
686 | predicate(partition,5,'Filter List according to Pred in three sets.',20145,20150). | |
687 | predicate(maplist,2,'True if Goal can successfully be applied on all elements of List.',20152,20156). | |
688 | predicate(maplist,3,'As maplist/2, operating on pairs of elements from two lists.',20158,20160). | |
689 | predicate(maplist,4,'As maplist/2, operating on triples of elements from three lists.',20162,20164). | |
690 | predicate(maplist,5,'As maplist/2, operating on quadruples of elements from four lists.',20166,20168). | |
691 | predicate(foldl,4,'Fold a list, using arguments of the list as left argument.',20170,20171). | |
692 | predicate(foldl,5,'Fold a list, using arguments of the list as left argument.',20173,20174). | |
693 | predicate(foldl,6,'Fold a list, using arguments of the list as left argument.',20176,20177). | |
694 | predicate(foldl,7,'Fold a list, using arguments of the list as left argument.',20179,20189). | |
695 | predicate(scanl,4,'Left scan of list.',20191,20192). | |
696 | predicate(scanl,5,'Left scan of list.',20194,20195). | |
697 | predicate(scanl,6,'Left scan of list.',20197,20198). | |
698 | predicate(scanl,7,'Left scan of list.',20200,20211). | |
699 | predicate(assoc_to_list,2,'Convert association tree to list',20226,20229). | |
700 | predicate(assoc_to_keys,2,'Translate assoc into a key list',20231,20234). | |
701 | predicate(assoc_to_values,2,'Translate assoc into a value list',20236,20239). | |
702 | predicate(empty_assoc,1,'Create/test empty association tree',20241,20243). | |
703 | predicate(gen_assoc,3,'Enumerate members of association tree',20245,20248). | |
704 | predicate(get_assoc,3,'Fetch key from association tree',20250,20253). | |
705 | predicate(get_assoc,5,'Fetch key from association tree',20255,20258). | |
706 | predicate(list_to_assoc,2,'Create association tree from list',20260,20263). | |
707 | predicate(map_assoc,2,'Map association tree',20265,20267). | |
708 | predicate(map_assoc,3,'Map association tree',20269,20272). | |
709 | predicate(max_assoc,3,'Highest key in association tree',20274,20277). | |
710 | predicate(min_assoc,3,'Lowest key in association tree',20279,20282). | |
711 | predicate(ord_list_to_assoc,2,'Convert ordered list to assoc',20284,20287). | |
712 | predicate(put_assoc,4,'Add Key-Value to association tree',20289,20293). | |
713 | predicate(is_assoc,1,'Verify association list',20295,20298). | |
714 | predicate(broadcast,1,'Send event notification',20322,20328). | |
715 | predicate(broadcast_request,1,'Request all agents',20330,20344). | |
716 | predicate(listen,2,'Listen to event notifications',20346,20358). | |
717 | predicate(listen,3,'Listen to event notifications',20360,20395). | |
718 | predicate(unlisten,1,'Stop listening to event notifications',20397,20399). | |
719 | predicate(unlisten,2,'Stop listening to event notifications',20401,20404). | |
720 | predicate(unlisten,3,'Stop listening to event notifications',20406,20409). | |
721 | predicate(listening,3,'Who is listening to event notifications?',20411,20414). | |
722 | predicate(format_to_chars,3,'Use format/2 to write to a list of character codes.',20429,20431). | |
723 | predicate(format_to_chars,4,'Use format/2 to write to a difference list of character codes.',20433,20435). | |
724 | predicate(write_to_chars,2,'Write a term to a code list.',20437,20440). | |
725 | predicate(write_to_chars,3,'Write a term to a code list.',20442,20445). | |
726 | predicate(atom_to_chars,2,'Convert Atom into a list of character codes.',20447,20451). | |
727 | predicate(atom_to_chars,3,'Convert Atom into a difference list of character codes.',20453,20455). | |
728 | predicate(number_to_chars,2,'Convert Atom into a list of character codes.',20457,20461). | |
729 | predicate(number_to_chars,3,'Convert Number into a difference list of character codes.',20463,20465). | |
730 | predicate(read_from_chars,2,'Read Codes into Term.',20467,20472). | |
731 | predicate(read_term_from_chars,3,'Read Codes into Term.',20474,20478). | |
732 | predicate(open_chars_stream,2,'Open Codes as an input stream.',20480,20487). | |
733 | predicate(with_output_to_chars,2,'Run Goal as with once/1.',20489,20492). | |
734 | predicate(with_output_to_chars,3,'Run Goal as with once/1.',20494,20497). | |
735 | predicate(with_output_to_chars,4,'Same as with_output_to_chars/3 using an explicit stream.',20499,20503). | |
736 | predicate(check,0,'Program completeness and consistency',20511,20519). | |
737 | predicate(list_undefined,0,'List undefined predicates',20521,20549). | |
738 | predicate(list_autoload,0,'List predicates that require autoload',20551,20555). | |
739 | predicate(list_redefined,0,'List locally redefined predicates',20557,20561). | |
740 | predicate(in,2,'Var is an element of Domain.',20864,20878). | |
741 | predicate(ins,2,'The variables in the list Vars are elements of Domain.',20880,20882). | |
742 | predicate(indomain,1,'Bind Var to all feasible values of its domain on backtracking.',20884,20887). | |
743 | predicate(label,1,'Equivalent to labeling([], Vars).',20889,20891). | |
744 | predicate(labeling,2,'Assign a value to each variable in Vars.',20893,20978). | |
745 | predicate(all_different,1,'Vars are pairwise distinct.',20980,20982). | |
746 | predicate(all_distinct,1,'Like all_different/1, with stronger propagation.',20984,20995). | |
747 | predicate(sum,3,'The sum of elements of the list Vars is in relation Rel to Expr.',20997,21008). | |
748 | predicate(scalar_product,4,'Cs is a list of integers, Vs is a list of variables and integers.',21010,21014). | |
749 | predicate(#>=,2,'X is greater than or equal to Y.',21016,21018). | |
750 | predicate(#=<,2,'X is less than or equal to Y.',21020,21022). | |
751 | predicate(#=,2,'X equals Y.',21024,21026). | |
752 | predicate(#\=,2,'X is not Y.',21028,21030). | |
753 | predicate(#>,2,'X is greater than Y.',21032,21034). | |
754 | predicate(#<,2,'X is less than Y.',21036,21051). | |
755 | predicate(#\,1,'The reifiable constraint Q does _not_ hold.',21053,21061). | |
756 | predicate(#<==>,2,'P and Q are equivalent.',21063,21102). | |
757 | predicate(#==>,2,'P implies Q.',21104,21106). | |
758 | predicate(#<==,2,'Q implies P.',21108,21110). | |
759 | predicate(#/\,2,'P and Q hold.',21112,21114). | |
760 | predicate(#\/,2,'P or Q holds.',21116,21128). | |
761 | predicate(lex_chain,1,'Lists are lexicographically non-decreasing.',21130,21132). | |
762 | predicate(tuples_in,2,'Relation must be a list of lists of integers.',21134,21178). | |
763 | predicate(serialized,2,'Describes a set of non-overlapping tasks.',21180,21199). | |
764 | predicate(element,3,'The N-th element of the list of finite domain variables Vs is V.',21201,21204). | |
765 | predicate(global_cardinality,2,'Global Cardinality constraint.',21206,21216). | |
766 | predicate(global_cardinality,3,'Global Cardinality constraint.',21218,21235). | |
767 | predicate(circuit,1,'True if the list Vs of finite domain variables induces a Hamiltonian circuit.',21237,21251). | |
768 | predicate(cumulative,1,'Equivalent to cumulative(Tasks, [limit(1)]).',21253,21255). | |
769 | predicate(cumulative,2,'Tasks is a list of tasks, each of the form task(S_i, D_i, E_i, C_i, T_i).',21257,21290). | |
770 | predicate(automaton,3,'Describes a list of finite domain variables with a finite automaton.',21292,21318). | |
771 | predicate(automaton,8,'Describes a list of finite domain variables with a finite automaton.',21320,21386). | |
772 | predicate(transpose,2,'Invert the direction of all edges',21388,21448). | |
773 | predicate(zcompare,3,'Analogous to compare/3, with finite domain variables A and B.',21450,21475). | |
774 | predicate(chain,2,'Zs form a chain with respect to Relation.',21477,21488). | |
775 | predicate(fd_var,1,'True iff Var is a CLP(FD) variable.',21490,21492). | |
776 | predicate(fd_inf,2,'Inf is the infimum of the current domain of Var.',21494,21496). | |
777 | predicate(fd_sup,2,'Sup is the supremum of the current domain of Var.',21498,21500). | |
778 | predicate(fd_size,2,'Determine the size of a variable\'s domain.',21502,21506). | |
779 | predicate(fd_dom,2,'Dom is the current domain (see in/2) of Var.',21508,21514). | |
780 | predicate({},1,'DCG escape; constraints',21555,21557). | |
781 | predicate(entailed,1,'Check if constraint is entailed',21559,21563). | |
782 | predicate(inf,2,'Find the infimum of an expression',21565,21569). | |
783 | predicate(sup,2,'Find the supremum of an expression',21571,21575). | |
784 | predicate(minimize,1,'Minimizes an expression',21577,21581). | |
785 | predicate(maximize,1,'Maximizes an expression',21583,21587). | |
786 | predicate(bb_inf,5,'Infimum of expression for mixed-integer problems',21589,21598). | |
787 | predicate(bb_inf,4,'Infimum of expression for mixed-integer problems',21600,21603). | |
788 | predicate(bb_inf,3,'Infimum of expression for mixed-integer problems',21605,21608). | |
789 | predicate(dump,3,'Dump constraints on variables',21610,21620). | |
790 | predicate(csv_read_file,2,'Read a CSV file into a list of rows.',21755,21756). | |
791 | predicate(csv_read_file,3,'Read a CSV file into a list of rows.',21758,21774). | |
792 | predicate(csv,3,'Prolog DCG to `read/write\' CSV data.',21776,21777). | |
793 | predicate(csv,4,'Prolog DCG to `read/write\' CSV data.',21779,21812). | |
794 | predicate(csv_read_file_row,3,'True when Row is a row in File.',21814,21834). | |
795 | predicate(csv_write_file,2,'Write a list of Prolog terms to a CSV file.',21836,21837). | |
796 | predicate(csv_write_file,3,'Write a list of Prolog terms to a CSV file.',21839,21844). | |
797 | predicate(csv_write_stream,3,'Write the rows in Data to Stream.',21846,21860). | |
798 | predicate(debugging,1,'Test where we are debugging topic',21882,21883). | |
799 | predicate(debugging,1,'Test where we are debugging topic',21885,21886). | |
800 | predicate(debugging,2,'Examine debug topics.',21888,21902). | |
801 | predicate(debug,1,'Select topic for debugging',21904,21905). | |
802 | predicate(nodebug,1,'Disable debug-topic',21907,21916). | |
803 | predicate(list_debug_topics,0,'List registered topics for debugging',21918,21920). | |
804 | predicate(debug_message_context,1,'Specify additional context for debug messages.',21922,21928). | |
805 | predicate(debug,3,'Print debugging message on topic',21930,21943). | |
806 | predicate(debug_print_hook,3,'Hook called by debug/3.',21945,21951). | |
807 | predicate(assertion,1,'Make assertions about your program',21953,21966). | |
808 | predicate(assertion_failed,2,'This hook is called if the Goal of assertion/1 fails.',21968,21974). | |
809 | predicate(gensym,2,'Generate unique atoms from a base',21989,21994). | |
810 | predicate(reset_gensym,1,'Reset a gensym key',21996,22000). | |
811 | predicate(reset_gensym,0,'Reset all gensym keys',22002,22007). | |
812 | predicate(member,2,'True if Elem is a member of List.',22027,22037). | |
813 | predicate(append,3,'List1AndList2 is the concatenation of List1 and List2.',22039,22041). | |
814 | predicate(append,2,'Concatenate a list of lists.',22043,22049). | |
815 | predicate(prefix,2,'True iff Part is a leading substring of Whole.',22051,22054). | |
816 | predicate(select,3,'Is true when List1, with Elem removed, results in List2.',22056,22058). | |
817 | predicate(selectchk,3,'Semi-deterministic removal of first element in List that unifies with Elem.',22060,22063). | |
818 | predicate(select,4,'Select from two lists at the same positon.',22065,22081). | |
819 | predicate(selectchk,4,'Semi-deterministic version of select/4.',22083,22085). | |
820 | predicate(nextto,3,'True if Y follows X in List.',22087,22089). | |
821 | predicate(delete,3,'Delete matching elements from a list.',22091,22103). | |
822 | predicate(nth0,3,'True when Elem is the Index\'th element of List.',22105,22113). | |
823 | predicate(nth1,3,'Is true when Elem is the Index\'th element of List.',22115,22120). | |
824 | predicate(nth0,4,'Select/insert element at index.',22122,22139). | |
825 | predicate(nth1,4,'As nth0/4, but counting starts at 1.',22141,22143). | |
826 | predicate(last,2,'Last element of a list',22145,22153). | |
827 | predicate(proper_length,2,'True when Length is the number of elements in the proper list List.',22155,22164). | |
828 | predicate(same_length,2,'Is true when List1 and List2 are lists with the same number of elements.',22166,22173). | |
829 | predicate(reverse,2,'Is true when the elements of List2 are in reverse order compared to List1.',22175,22178). | |
830 | predicate(permutation,2,'True when Xs is a permutation of Ys.',22180,22211). | |
831 | predicate(flatten,2,'Is true if List2 is a non-nested version of List1.',22213,22223). | |
832 | predicate(max_member,2,'True when Max is the largest member in the standard order of terms.',22225,22232). | |
833 | predicate(min_member,2,'True when Min is the smallest member in the standard order of terms.',22234,22241). | |
834 | predicate(sum_list,2,'Sum is the result of adding all numbers in List.',22243,22245). | |
835 | predicate(max_list,2,'True if Max is the largest number in List.',22247,22251). | |
836 | predicate(min_list,2,'True if Min is the smallest number in List.',22253,22258). | |
837 | predicate(numlist,3,'List is a list [Low, Low+1, ... High].',22260,22266). | |
838 | predicate(is_set,1,'True if Set is a proper list without duplicates.',22268,22273). | |
839 | predicate(list_to_set,2,'Remove duplicates from a list',22275,22294). | |
840 | predicate(intersection,3,'True if Set3 unifies with the intersection of Set1 and Set2.',22296,22301). | |
841 | predicate(union,3,'True if Set3 unifies with the union of Set1 and Set2.',22303,22308). | |
842 | predicate(subset,2,'True if all elements of SubSet belong to Set as well.',22310,22315). | |
843 | predicate(subtract,3,'Delete all elements in Delete from Set.',22317,22322). | |
844 | predicate(empty_nb_set,1,'Test/create an empty non-backtrackable set',22351,22353). | |
845 | predicate(add_nb_set,2,'Add term to a non-backtrackable set',22355,22358). | |
846 | predicate(add_nb_set,3,'Add term to a non-backtrackable set',22360,22368). | |
847 | predicate(gen_nb_set,2,'Generate members of non-backtrackable set',22370,22373). | |
848 | predicate(size_nb_set,2,'Determine size of non-backtrackable set',22375,22377). | |
849 | predicate(nb_set_to_list,2,'Convert non-backtrackable set to list',22379,22382). | |
850 | predicate(www_open_url,1,'Open a web-page in a browser',22390,22410). | |
851 | predicate(option,3,'Get an Option Qfrom OptionList.',22465,22471). | |
852 | predicate(option,2,'Get an Option from OptionList.',22473,22480). | |
853 | predicate(select_option,3,'Get and remove Option from an option list.',22482,22486). | |
854 | predicate(select_option,4,'Get and remove Option with default value.',22488,22492). | |
855 | predicate(merge_options,3,'Merge two option lists.',22494,22501). | |
856 | predicate(meta_options,3,'Perform meta-expansion on options that are module-sensitive.',22503,22520). | |
857 | predicate(opt_arguments,3,'Extract commandline options according to a specification.',22827,22843). | |
858 | predicate(opt_parse,4,'Equivalent to opt_parse(OptsSpec, ApplArgs, Opts, PositionalArgs, []).',22845,22847). | |
859 | predicate(opt_parse,5,'Parse the arguments Args (as list of atoms) according to OptsSpec.',22849,22884). | |
860 | predicate(opt_help,2,'True when Help is a help string synthesized from OptsSpec.',22886,22888). | |
861 | predicate(is_ordset,1,'True if Term is an ordered set.',22919,22924). | |
862 | predicate(ord_empty,1,'True when List is the empty ordered set.',22926,22929). | |
863 | predicate(ord_seteq,2,'True if Set1 and Set2 have the same elements.',22931,22936). | |
864 | predicate(list_to_ord_set,2,'Transform a list into an ordered set.',22938,22941). | |
865 | predicate(ord_intersect,2,'True if both ordered sets have a non-empty intersection.',22943,22945). | |
866 | predicate(ord_disjoint,2,'True if Set1 and Set2 have no common elements.',22947,22950). | |
867 | predicate(ord_intersect,3,'Intersection holds the common elements of Set1 and Set2.',22952,22956). | |
868 | predicate(ord_intersection,2,'Intersection of a powerset.',22958,22963). | |
869 | predicate(ord_intersection,3,'Intersection holds the common elements of Set1 and Set2.',22965,22967). | |
870 | predicate(ord_intersection,4,'Intersection and difference between two ordered sets.',22969,22975). | |
871 | predicate(ord_add_element,3,'Insert an element into the set.',22977,22980). | |
872 | predicate(ord_del_element,3,'Delete an element from an ordered set.',22982,22985). | |
873 | predicate(ord_selectchk,3,'Selectchk/3, specialised for ordered sets.',22987,22997). | |
874 | predicate(ord_memberchk,2,'True if Element is a member of OrdSet, compared using ==.',22999,23010). | |
875 | predicate(ord_subset,2,'Is true if all elements of Sub are in Super.',23012,23014). | |
876 | predicate(ord_subtract,3,'Diff is the set holding all elements of InOSet that are not in NotInOSet.',23016,23019). | |
877 | predicate(ord_union,2,'True if Union is the union of all elements in the superset SetOfSets.',23021,23028). | |
878 | predicate(ord_union,3,'Union is the union of Set1 and Set2.',23030,23032). | |
879 | predicate(ord_union,4,'True iff ord_union(Set1, Set2, Union) and ord_subtract(Set2, Set1, New).',23034,23037). | |
880 | predicate(ord_symdiff,3,'Is true when Difference is the symmetric difference of Set1 and Set2.',23039,23057). | |
881 | predicate(pairs_keys_values,3,'True if Keys holds the keys of Pairs and Values the values.',23074,23082). | |
882 | predicate(pairs_values,2,'Remove the keys from a list of Key-Value pairs.',23084,23087). | |
883 | predicate(pairs_keys,2,'Remove the values from a list of Key-Value pairs.',23089,23092). | |
884 | predicate(group_pairs_by_key,2,'Group values with the same key.',23094,23110). | |
885 | predicate(transpose_pairs,2,'Swap Key-Value to Value-Key.',23112,23115). | |
886 | predicate(map_list_to_pairs,3,'Create a Key-Value list by mapping each element of List.',23117,23124). | |
887 | predicate(phrase_from_file,2,'Process the content of File using the DCG rule Grammar.',23156,23180). | |
888 | predicate(phrase_from_file,3,'As phrase_from_file/2, providing additional Options.',23182,23188). | |
889 | predicate(phrase_from_stream,2,'Helper for phrase_from_file/3.',23190,23193). | |
890 | predicate(syntax_error,3,'Throw the syntax error Error at the current location of the input.',23195,23201). | |
891 | predicate(lazy_list_location,3,'Determine current (error) location in a lazy list.',23203,23218). | |
892 | predicate(lazy_list_character_count,3,'True when CharCount is the current character count in the Lazy list.',23220,23231). | |
893 | predicate(stream_to_lazy_list,2,'Create a lazy list representing the character codes in Stream.',23233,23245). | |
894 | predicate(predicate_options,3,'Declare that the predicate PI processes options on Arg.',23387,23421). | |
895 | predicate(assert_predicate_options,4,'As predicate_options(:PI, +Arg, +Options).',23423,23431). | |
896 | predicate(current_predicate_option,3,'True when Arg of PI processes Option.',23433,23444). | |
897 | predicate(check_predicate_option,3,'Verify predicate options at runtime.',23446,23461). | |
898 | predicate(current_option_arg,2,'True when Arg of PI processes predicate options.',23463,23466). | |
899 | predicate(current_predicate_options,3,'True when Options is the current active option declaration for PI on Arg.',23468,23476). | |
900 | predicate(check_predicate_options,0,'Analyse loaded program for erroneous options.',23478,23494). | |
901 | predicate(derive_predicate_options,0,'Derive new predicate option declarations.',23496,23505). | |
902 | predicate(retractall_predicate_options,0,'Remove all dynamically (derived) predicate options.',23507,23509). | |
903 | predicate(derived_predicate_options,3,'Derive option arguments using static analysis.',23511,23514). | |
904 | predicate(derived_predicate_options,1,'Derive predicate option declarations for a module.',23516,23519). | |
905 | predicate(pack_list_installed,0,'List currently installed packages.',23539,23545). | |
906 | predicate(pack_info,1,'Print more detailed information about Pack.',23547,23549). | |
907 | predicate(pack_search,1,'Query package server and installed packages and display results.',23551,23552). | |
908 | predicate(pack_list,1,'Query package server and installed packages and display results.',23554,23586). | |
909 | predicate(pack_install,1,'Install a package.',23588,23606). | |
910 | predicate(pack_install,2,'Install package Name.',23608,23620). | |
911 | predicate(pack_rebuild,1,'Rebuilt possible foreign components of Pack.',23622,23624). | |
912 | predicate(pack_rebuild,0,'Rebuild foreign components of all packages.',23626,23628). | |
913 | predicate(environment,2,'Hook to define the environment for building packs.',23630,23646). | |
914 | predicate(pack_upgrade,1,'Try to upgrade the package Pack.',23648,23653). | |
915 | predicate(pack_remove,1,'Remove the indicated package.',23655,23657). | |
916 | predicate(pack_property,2,'True when Property is a property of Pack.',23659,23684). | |
917 | predicate(xref_source,1,'Cross-reference analysis of source',23719,23724). | |
918 | predicate(xref_current_source,1,'Examine cross-referenced sources',23726,23728). | |
919 | predicate(xref_clean,1,'Remove analysis of source',23730,23732). | |
920 | predicate(xref_defined,3,'Examine defined predicates',23734,23745). | |
921 | predicate(xref_called,3,'Examine called predicates',23747,23749). | |
922 | predicate(xref_exported,2,'Examine exported predicates',23751,23753). | |
923 | predicate(xref_module,2,'Module defined by source',23755,23757). | |
924 | predicate(xref_built_in,1,'Examine defined built-ins',23759,23764). | |
925 | predicate(called_by,2,'Hook (prolog) Extend cross-referencer',23772,23785). | |
926 | predicate(with_quasi_quotation_input,3,'',23865,23885). | |
927 | predicate(phrase_from_quasi_quotation,2,'',23887,23893). | |
928 | predicate(quasi_quotation_syntax,1,'',23895,23898). | |
929 | predicate(quasi_quotation_syntax_error,1,'',23900,23905). | |
930 | predicate(random,1,'Binds R to a new random float in the _open_ interval (0.0,1.0).',23919,23927). | |
931 | predicate(random_between,3,'Binds R to a random integer in [L,U] (i.e., including both L and U).',23929,23932). | |
932 | predicate(random,3,'Generate a random integer or float in a range.',23934,23935). | |
933 | predicate(random,3,'Generate a random integer or float in a range.',23937,23947). | |
934 | predicate(setrand,1,'Query/set the state of the random generator.',23949,23950). | |
935 | predicate(getrand,1,'Query/set the state of the random generator.',23952,23971). | |
936 | predicate(maybe,0,'Succeed/fail with equal probability (variant of maybe/1).',23973,23975). | |
937 | predicate(maybe,1,'Succeed with probability P, fail with probability 1-P.',23977,23979). | |
938 | predicate(maybe,2,'Succeed with probability K/N (variant of maybe/1).',23981,23983). | |
939 | predicate(random_perm2,4,'Does X=A,Y=B or X=B,Y=A with equal probability.',23985,23987). | |
940 | predicate(random_member,2,'X is a random member of List.',23989,23994). | |
941 | predicate(random_select,3,'Randomly select or insert an element.',23996,23997). | |
942 | predicate(random_select,3,'Randomly select or insert an element.',23999,24004). | |
943 | predicate(randset,3,'S is a sorted list of K unique random integers in the range 1..N.',24006,24021). | |
944 | predicate(randseq,3,'S is a list of K unique random integers in the range 1..N.',24023,24034). | |
945 | predicate(random_permutation,2,'Permutation is a random permutation of List.',24036,24037). | |
946 | predicate(random_permutation,2,'Permutation is a random permutation of List.',24039,24045). | |
947 | predicate(read_line_to_codes,2,'Read line from a stream',24058,24066). | |
948 | predicate(read_line_to_codes,3,'Read line from a stream',24068,24089). | |
949 | predicate(read_stream_to_codes,2,'Read contents of stream',24091,24093). | |
950 | predicate(read_stream_to_codes,3,'Read contents of stream',24095,24097). | |
951 | predicate(read_file_to_codes,3,'Read contents of file',24099,24105). | |
952 | predicate(read_file_to_terms,3,'Read contents of file to Prolog terms',24107,24113). | |
953 | predicate(record,1,'Define named fields in a term',24207,24212). | |
954 | predicate(registry_get_key,2,'Get principal value of key',24231,24234). | |
955 | predicate(registry_get_key,3,'Get associated value of key',24236,24238). | |
956 | predicate(registry_set_key,2,'Set principal value of key',24240,24243). | |
957 | predicate(registry_set_key,3,'Set associated value of key',24245,24248). | |
958 | predicate(registry_delete_key,1,'Remove a key',24250,24252). | |
959 | predicate(shell_register_file_type,4,'Register a file-type',24254,24260). | |
960 | predicate(shell_register_dde,6,'Register DDE action',24262,24269). | |
961 | predicate(shell_register_prolog,1,'Register Prolog',24271,24290). | |
962 | predicate(assignment,2,'Solve assignment problem',24315,24321). | |
963 | predicate(constraint,3,'Add linear constraint to state',24323,24333). | |
964 | predicate(constraint,4,'Add named linear constraint to state',24335,24338). | |
965 | predicate(constraint_add,4,'Extend a named constraint',24340,24344). | |
966 | predicate(gen_state,1,'Create empty linear program',24346,24349). | |
967 | predicate(maximize,3,'Maximize objective function in to linear constraints',24351,24356). | |
968 | predicate(minimize,3,'Minimize objective function in to linear constraints',24358,24360). | |
969 | predicate(objective,2,'Fetch value of objective function',24362,24365). | |
970 | predicate(shadow_price,3,'Fetch shadow price in solved state',24367,24371). | |
971 | predicate(transportation,4,'Solve transportation problem',24373,24381). | |
972 | predicate(variable_value,3,'Fetch value of variable in solved state',24383,24392). | |
973 | predicate(thread_pool_create,3,'Create a pool of threads.',24566,24583). | |
974 | predicate(thread_pool_destroy,1,'Destroy the thread pool named Name.',24585,24589). | |
975 | predicate(current_thread_pool,1,'True if Name refers to a defined thread pool.',24591,24593). | |
976 | predicate(thread_pool_property,2,'True if Property is a property of thread pool Name.',24595,24616). | |
977 | predicate(thread_create_in_pool,4,'Create a thread in Pool.',24618,24632). | |
978 | predicate(create_pool,1,'Hook to create a thread pool lazily.',24634,24648). | |
979 | predicate(vertices_edges_to_ugraph,3,'Create unweighted graph',24679,24697). | |
980 | predicate(vertices,2,'Find vertices in graph',24699,24705). | |
981 | predicate(edges,2,'Find edges in graph',24707,24714). | |
982 | predicate(add_vertices,3,'Add vertices to graph',24716,24724). | |
983 | predicate(del_vertices,3,'Delete vertices from graph',24726,24738). | |
984 | predicate(add_edges,3,'Add edges to graph',24740,24752). | |
985 | predicate(del_edges,3,'Delete edges from graph',24754,24764). | |
986 | predicate(transpose,2,'Invert the direction of all edges',24766,24777). | |
987 | predicate(neighbours,3,'Find neighbors of vertice',24779,24788). | |
988 | predicate(neighbors,3,'Find neighbors of vertice',24790,24792). | |
989 | predicate(complement,2,'Inverse presense of edges',24794,24804). | |
990 | predicate(compose,3,'',24806,24814). | |
991 | predicate(ugraph_union,3,'Union of two graphs',24816,24823). | |
992 | predicate(top_sort,2,'Sort graph topologically',24825,24835). | |
993 | predicate(top_sort,3,'Sort graph topologically',24837,24840). | |
994 | predicate(transitive_closure,2,'Create transitive closure of graph',24842,24850). | |
995 | predicate(reachable,3,'Find all reachable vertices',24852,24860). | |
996 | predicate(global_url,3,'Translate a possibly relative URL into an absolute one.',24883,24887). | |
997 | predicate(is_absolute_url,1,'True if URL is an absolute URL.',24889,24892). | |
998 | predicate(http_location,2,'Construct or analyze an HTTP location.',24894,24905). | |
999 | predicate(parse_url,2,'Construct or analyse a URL.',24907,24964). | |
1000 | predicate(parse_url,3,'Similar to parse_url/2 for relative URLs.',24966,24969). | |
1001 | predicate(www_form_encode,2,'En/decode to/from application/x-www-form-encoded.',24971,24972). | |
1002 | predicate(www_form_encode,2,'En/decode to/from application/x-www-form-encoded.',24974,24985). | |
1003 | predicate(set_url_encoding,2,'Query and set the encoding for URLs.',24987,24994). | |
1004 | predicate(url_iri,2,'Convert between a URL, encoding in US-ASCII and an IRI.',24996,24997). | |
1005 | predicate(url_iri,2,'Convert between a URL, encoding in US-ASCII and an IRI.',24999,25003). | |
1006 | predicate(parse_url_search,2,'Construct or analyze an HTTP search specification.',25005,25009). | |
1007 | predicate(file_name_to_url,2,'Translate between a filename and a file:Sidiv{} URL.',25011,25012). | |
1008 | predicate(file_name_to_url,2,'Translate between a filename and a file:Sidiv{} URL.',25014,25019). | |
1009 | predicate(numbervars,1,'Number variables in Term using $VAR(N).',25045,25050). | |
1010 | predicate(varnumbers,2,'Inverse of numbervars/1.',25052,25054). | |
1011 | predicate(varnumbers,3,'Inverse of numbervars/3.',25056,25067). | |
1012 | predicate(max_var_number,3,'True when Max is the max of Start and the highest numbered $VAR(N) term.',25069,25076). | |
1013 | predicate(prolog_current_frame,1,'Reference to goal\'s environment stack',25091,25097). | |
1014 | predicate(prolog_current_choice,1,'Reference to most recent choice point',25099,25103). | |
1015 | predicate(prolog_frame_attribute,3,'Obtain information on a goal environment',25105,25188). | |
1016 | predicate(prolog_choice_attribute,3,'Examine the choice point stack',25190,25212). | |
1017 | predicate(deterministic,1,'Test deterministicy of current clause',25214,25221). | |
1018 | predicate(prolog_cut_to,1,'Realise global cuts',25226,25232). | |
1019 | predicate(prolog_trace_interception,4,'library(user) Intercept the Prolog tracer',25325,25434). | |
1020 | predicate(prolog_skip_frame,1,'Perform `skip\' on a frame',25436,25443). | |
1021 | predicate(prolog_skip_level,2,'Indicate deepest recursion to trace',25445,25452). | |
1022 | predicate(break_hook,6,'',25464,25541). | |
1023 | predicate(prolog_exception_hook,4,'Rewrite exceptions',25551,25594). | |
1024 | predicate(exception,3,'Hook (user) Handle runtime exceptions',25609,25635). | |
1025 | predicate(prolog_list_goal,1,'Hook (user) Intercept tracer \'L\' command',25647,25653). | |
1026 | predicate(debug_control_hook,1,'Hook (prolog) Extend spy/1, etc.',25655,25681). | |
1027 | predicate(help_hook,1,'Hook (prolog) User-hook in the help-system',25683,25698). | |
1028 | predicate(prolog_load_file,2,'Hook (user) Program load_files/2',25707,25718). | |
1029 | predicate(comment_hook,3,'Hook (prolog) handle comments in sources',25720,25739). | |
1030 | predicate(rl_read_init_file,1,'Read readline(3) init file',25749,25753). | |
1031 | predicate(rl_add_history,1,'Add line to readline(3) history',25755,25758). | |
1032 | predicate(rl_write_history,1,'Write readline(3) history',25760,25763). | |
1033 | predicate(rl_read_history,1,'Read readline(3) history',25765,25767). | |
1034 | predicate(expects_dialect,1,'For which Prolog dialect is this code written?',25810,25836). | |
1035 | predicate(exists_source,1,'Check existence of a Prolog source',25838,25842). | |
1036 | predicate(source_exports,2,'Check whether source exports a predicate',25844,25847). | |
1037 | predicate(eval_license,0,'Evaluate licenses of loaded modules',26347,26353). | |
1038 | predicate(license,2,'Define license for named module',26355,26407). | |
1039 | predicate(license,1,'Define license for current file',26409,26412). | |
1040 | 1040 | |
1041 | 1041 | |
1042 | 1042 | % Predicate section/4 |
1128 | 1128 | section([3,7],'Cross-referencer',3569,3650). |
1129 | 1129 | section([3,8],'Accessing the IDE from your program',3652,3689). |
1130 | 1130 | section([3,9],'Summary of the IDE',3691,3727). |
1131 | section([4],'BUILT-IN PREDICATES',3729,12309). | |
1131 | section([4],'BUILT-IN PREDICATES',3729,12319). | |
1132 | 1132 | section([4,1],'Notation of Predicate Descriptions',3732,3775). |
1133 | 1133 | section([4,2],'Character representation',3777,3832). |
1134 | 1134 | section([4,3],'Loading Prolog source files',3834,4848). |
1162 | 1162 | section([4,13,2],'Indexing databases',6428,6488). |
1163 | 1163 | section([4,14],'Declaring predicate properties',6490,6549). |
1164 | 1164 | section([4,15],'Examining the program',6551,6853). |
1165 | section([4,16],'Input and output',6855,7564). | |
1165 | section([4,16],'Input and output',6855,7574). | |
1166 | 1166 | section([4,16,1],'Predefined stream aliases',6869,6905). |
1167 | section([4,16,2],'ISO Input and Output Streams',6907,7362). | |
1168 | section([4,16,3],'Edinburgh-style I/O',7364,7483). | |
1169 | section([],'Compatibility notes',7412,29102). | |
1170 | section([4,16,4],'Switching between Edinburgh and ISO I/O',7485,7509). | |
1171 | section([4,16,5],'Write onto atoms, code-lists, etc.',7511,7564). | |
1172 | section([4,17],'Status of streams',7566,7637). | |
1173 | section([4,18],'Primitive character I/O',7639,7878). | |
1174 | section([4,19],'Term reading and writing',7880,8319). | |
1175 | section([4,20],'Analysing and Constructing Terms',8321,8512). | |
1176 | section([4,20,1],'Non-logical operations on terms',8434,8512). | |
1177 | section([4,21],'Analysing and Constructing Atoms',8514,8701). | |
1178 | section([4,22],'Localization (locale) support',8703,8788). | |
1179 | section([4,23],'Character properties',8790,8977). | |
1180 | section([4,23,1],'Case conversion',8922,8939). | |
1181 | section([4,23,2],'White space normalization',8941,8949). | |
1182 | section([4,23,3],'Language-specific comparison',8951,8977). | |
1183 | section([4,24],'Representing text in strings',8979,9066). | |
1184 | section([4,25],'Operators',9068,9174). | |
1185 | section([4,26],'Character Conversion',9176,9193). | |
1186 | section([4,27],'Arithmetic',9195,9835). | |
1187 | section([4,27,1],'Special purpose integer arithmetic',9205,9233). | |
1188 | section([4,27,2],'General purpose arithmetic',9235,9835). | |
1189 | section([4,27,2,1],'Arithmetic types',9281,9333). | |
1190 | section([4,27,2,2],'Rational number examples',9335,9366). | |
1191 | section([4,27,2,3],'Arithmetic Functions',9368,9835). | |
1192 | section([4,28],'Misc arithmetic support predicates',9837,9885). | |
1193 | section([4,29],'Built-in list operations',9887,9981). | |
1194 | section([4,30],'Finding all Solutions to a Goal',9983,10042). | |
1195 | section([4,31],'Forall',10044,10088). | |
1196 | section([4,32],'Formatted Write',10090,10415). | |
1197 | section([4,32,1],'Writef',10100,10180). | |
1198 | section([4,32,2],'Format',10182,10376). | |
1199 | section([4,32,3],'Programming Format',10378,10415). | |
1200 | section([4,33],'Terminal Control',10417,10463). | |
1201 | section([4,34],'Operating System Interaction',10465,11125). | |
1202 | section([4,34,1],'Windows-specific Operating System Interaction',10589,10699). | |
1203 | section([4,34,2],'Dealing with time and date',10701,11063). | |
1204 | section([4,34,2,1],'Time and date data structures',10740,10768). | |
1205 | section([4,34,2,2],'Time and date predicates',10770,11063). | |
1206 | section([4,34,3],'Controlling the swipl-win.exe console window',11065,11125). | |
1207 | section([4,35],'File System Interaction',11127,11403). | |
1208 | section([4,36],'User Top-level Manipulation',11405,11499). | |
1209 | section([4,37],'Creating a Protocol of the User Interaction',11501,11526). | |
1210 | section([4,38],'Debugging and Tracing Programs',11528,11742). | |
1211 | section([4,39],'Obtaining Runtime Statistics',11744,11848). | |
1212 | section([4,40],'Execution profiling',11850,12025). | |
1213 | section([4,40,1],'Profiling predicates',11861,11927). | |
1214 | section([4,40,2],'Visualizing profiling data',11929,11976). | |
1215 | section([4,40,3],'Information gathering',11978,12025). | |
1216 | section([4,40,3,1],'Profiling in the Windows Implementation',12010,12025). | |
1217 | section([4,41],'Memory Management',12027,12113). | |
1218 | section([4,42],'Windows DDE interface',12115,12249). | |
1219 | section([4,42,1],'DDE client interface',12131,12188). | |
1220 | section([4,42,2],'DDE server mode',12190,12249). | |
1221 | section([4,43],'Miscellaneous',12251,12309). | |
1222 | section([5],'MODULES',12311,13130). | |
1223 | section([5,1],'Why Use Modules?',12338,12358). | |
1224 | section([5,2],'Defining a Module',12360,12414). | |
1225 | section([5,3],'Importing Predicates into a Module',12416,12502). | |
1226 | section([5,4],'Defining a meta-predicate',12504,12632). | |
1227 | section([5,5],'Overruling Module Boundaries',12634,12691). | |
1228 | section([5,5,1],'Explicit manipulation of the calling context',12666,12691). | |
1229 | section([5,6],'Interacting with modules from the top level',12693,12721). | |
1230 | section([5,7],'Composing modules from other modules',12723,12754). | |
1231 | section([5,8],'Operators and modules',12756,12786). | |
1232 | section([5,9],'Dynamic importing using import modules',12788,12836). | |
1233 | section([5,10],'Reserved Modules and using the `user\' module',12838,12853). | |
1234 | section([5,11],'An alternative import/export interface',12855,12880). | |
1235 | section([5,12],'Dynamic Modules',12882,12915). | |
1236 | section([5,13],'Transparent predicates: definition and context module',12917,13008). | |
1237 | section([5,14],'Module properties',13010,13073). | |
1238 | section([5,15],'Compatibility of the Module System',13075,13130). | |
1239 | section([6],'SPECIAL VARIABLES AND COROUTINING',13132,13580). | |
1240 | section([6,1],'Attributed variables',13179,13386). | |
1241 | section([6,1,1],'Attribute manipulation predicates',13263,13295). | |
1242 | section([6,1,2],'Attributed variable hooks',13297,13331). | |
1243 | section([6,1,3],'Operations on terms with attributed variables',13333,13362). | |
1244 | section([6,1,4],'Special purpose predicates for attributes',13364,13386). | |
1245 | section([6,2],'Coroutining',13388,13463). | |
1246 | section([6,3],'Global variables',13465,13580). | |
1247 | section([6,3,1],'Compatibility of SWI-Prolog Global Variables',13567,13580). | |
1248 | section([7],'CHR: CONSTRAINT HANDLING RULES',13582,14459). | |
1249 | section([7,1],'Introduction',13604,13632). | |
1250 | section([7,2],'Syntax and Semantics',13634,13811). | |
1251 | section([7,2,1],'Syntax of CHR rules',13637,13689). | |
1252 | section([7,2,2],'Semantics',13691,13811). | |
1253 | section([7,3],'CHR in SWI-Prolog Programs',13813,14059). | |
1254 | section([7,3,1],'Embedding in Prolog Programs',13816,13821). | |
1255 | section([7,3,2],'Constraint declaration',13823,14032). | |
1256 | section([7,3,3],'Compilation',14034,14059). | |
1257 | section([7,4],'Debugging',14061,14202). | |
1258 | section([7,4,1],'Ports',14071,14112). | |
1259 | section([7,4,2],'Tracing',14114,14161). | |
1260 | section([7,4,3],'CHR Debugging Predicates',14163,14202). | |
1261 | section([7,5],'Examples',14204,14263). | |
1262 | section([7,6],'Backwards Compatibility',14265,14343). | |
1263 | section([7,6,1],'The Old SICStus CHR implemenation',14268,14311). | |
1264 | section([7,6,2],'The Old ECLiPSe CHR implemenation',14313,14343). | |
1265 | section([7,7],'Programming Tips and Tricks',14345,14388). | |
1266 | section([7,8],'Compiler Errors and Warnings',14390,14459). | |
1267 | section([7,8,1],'CHR Compiler Errors',14396,14459). | |
1268 | section([8],'MULTITHREADED APPLICATIONS',14461,15476). | |
1269 | section([8,1],'Creating and destroying Prolog threads',14497,14678). | |
1270 | section([8,2],'Monitoring threads',14680,14750). | |
1271 | section([8,3],'Thread communication',14752,15025). | |
1272 | section([8,3,1],'Message queues',14755,14943). | |
1273 | section([8,3,2],'Signalling threads',14945,14976). | |
1274 | section([8,3,3],'Threads and dynamic predicates',14978,15025). | |
1275 | section([8,4],'Thread synchronisation',15027,15142). | |
1276 | section([8,5],'Thread support library(threadutil)',15144,15249). | |
1277 | section([8,5,1],'Debugging threads',15170,15234). | |
1278 | section([8,5,2],'Profiling threads',15236,15249). | |
1279 | section([8,6],'Multithreaded mixed C and Prolog applications',15251,15420). | |
1280 | section([8,6,1],'A Prolog thread for each native thread (one-to-one)',15273,15353). | |
1281 | section([8,6,2],'Pooling Prolog engines (many-to-many)',15355,15420). | |
1282 | section([8,7],'Multithreading and the XPCE graphics system',15422,15476). | |
1283 | section([9],'FOREIGN LANGUAGE INTERFACE',15478,19506). | |
1284 | section([9,1],'Overview of the Interface',15497,15522). | |
1285 | section([9,2],'Linking Foreign Modules',15524,15791). | |
1286 | section([9,2,1],'What linking is provided?',15535,15543). | |
1287 | section([9,2,2],'What kind of loading should I be using?',15545,15561). | |
1288 | section([9,2,3],'library(shlib): Utility library for loading foreign objects',15563,15686). | |
1289 | section([9,2,4],'Low-level operations on shared libraries',15688,15729). | |
1290 | section([9,2,5],'Static Linking',15731,15791). | |
1291 | section([9,3],'Interface Data Types',15793,15959). | |
1292 | section([9,3,1],'Type term_t: a reference to a Prolog term',15796,15910). | |
1293 | section([9,3,1,1],'Interaction with the garbage collector and stack-shifter',15899,15910). | |
1294 | section([9,3,2],'Other foreign interface types',15912,15959). | |
1295 | section([9,4],'The Foreign Include File',15961,19037). | |
1296 | section([9,4,1],'Argument Passing and Control',15964,16103). | |
1297 | section([9,4,1,1],'Non-deterministic Foreign Predicates',15983,16103). | |
1298 | section([9,4,2],'Atoms and functors',16105,16191). | |
1299 | section([9,4,2,1],'Atoms and atom garbage collection',16157,16191). | |
1300 | section([9,4,3],'Analysing Terms via the Foreign Interface',16193,16748). | |
1301 | section([9,4,3,1],'Testing the type of a term',16206,16314). | |
1302 | section([9,4,3,2],'Reading data from a term',16316,16507). | |
1303 | section([9,4,3,3],'Exchanging text using length and string',16509,16573). | |
1304 | section([9,4,3,4],'Wide-character versions',16575,16622). | |
1305 | section([9,4,3,5],'Reading a list',16624,16694). | |
1306 | section([9,4,3,6],'An example: defining write/1 in C',16696,16748). | |
1307 | section([9,4,4],'Constructing Terms',16750,16890). | |
1308 | section([9,4,5],'Unifying data',16892,17282). | |
1309 | section([9,4,6],'Convenient functions to generate Prolog exceptions',17284,17435). | |
1310 | section([9,4,7],'BLOBS: Using atoms to store arbitrary binary data',17437,17586). | |
1311 | section([9,4,7,1],'Defining a BLOB type',17459,17546). | |
1312 | section([9,4,7,2],'Accessing blobs',17548,17586). | |
1313 | section([9,4,8],'Exchanging GMP numbers',17588,17672). | |
1314 | section([9,4,9],'Calling Prolog from C',17674,17823). | |
1315 | section([9,4,9,1],'Predicate references',17687,17714). | |
1316 | section([9,4,9,2],'Initiating a query from C',17716,17823). | |
1317 | section([9,4,10],'Discarding Data',17825,17885). | |
1318 | section([9,4,11],'Foreign Code and Modules',17887,17926). | |
1319 | section([9,4,12],'Prolog exceptions in foreign code',17928,18055). | |
1320 | section([9,4,13],'Catching Signals (Software Interrupts)',18057,18130). | |
1321 | section([9,4,14],'Miscellaneous',18132,18292). | |
1322 | section([9,4,14,1],'Term Comparison',18135,18146). | |
1323 | section([9,4,14,2],'Recorded database',18148,18241). | |
1324 | section([9,4,14,3],'Getting file names',18243,18292). | |
1325 | section([9,4,15],'Errors and warnings',18294,18307). | |
1326 | section([9,4,16],'Environment Control from Foreign Code',18309,18390). | |
1327 | section([9,4,17],'Querying Prolog',18392,18429). | |
1328 | section([9,4,18],'Registering Foreign Predicates',18431,18555). | |
1329 | section([9,4,19],'Foreign Code Hooks',18557,18642). | |
1330 | section([9,4,20],'Storing foreign data',18644,18836). | |
1331 | section([9,4,20,1],'Examples for storing foreign data',18714,18836). | |
1332 | section([9,4,21],'Embedding SWI-Prolog in other applications',18838,19037). | |
1333 | section([9,4,21,1],'Threading, Signals and embedded Prolog',18998,19037). | |
1334 | section([9,5],'Linking embedded applications using swipl-ld',19039,19258). | |
1335 | section([9,5,1],'A simple example',19172,19258). | |
1336 | section([9,6],'The Prolog `home\' directory',19260,19294). | |
1337 | section([9,7],'Example of Using the Foreign Interface',19296,19355). | |
1338 | section([9,8],'Notes on Using Foreign Code',19357,19506). | |
1339 | section([9,8,1],'Memory Allocation',19360,19422). | |
1340 | section([9,8,1,1],'Boehm-GC support',19392,19422). | |
1341 | section([9,8,2],'Compatibility between Prolog versions',19424,19436). | |
1342 | section([9,8,3],'Debugging and profiling foreign code (valgrind)',19438,19458). | |
1343 | section([9,8,4],'Name Conflicts in C modules',19460,19477). | |
1344 | section([9,8,5],'Compatibility of the Foreign Interface',19479,19506). | |
1345 | section([10],'GENERATING RUNTIME APPLICATIONS',19508,19914). | |
1346 | section([10,1],'Limitations of qsave_program',19659,19675). | |
1347 | section([10,2],'Runtimes and Foreign Code',19677,19743). | |
1348 | section([10,3],'Using program resources',19745,19867). | |
1349 | section([10,3,1],'Resource manipulation predicates',19778,19836). | |
1350 | section([10,3,2],'The swipl-rc program',19838,19867). | |
1351 | section([10,4],'Finding Application files',19869,19914). | |
1352 | section([10,4,1],'Specifying a file search path from the command line',19901,19914). | |
1353 | section([11],'THE SWI-PROLOG LIBRARY',19916,25060). | |
1354 | section([11,1],'library(aggregate): Aggregation operators on backtrackable',19940,20101). | |
1355 | section([11,2],'library(apply): Apply predicates on a list',20103,20201). | |
1356 | section([11,3],'library(assoc): Association lists',20203,20288). | |
1357 | section([11,4],'library(broadcast): Broadcast and receive event notifications',20290,20404). | |
1358 | section([11,5],'library(charsio): I/O on Lists of Character Codes',20406,20493). | |
1359 | section([11,6],'library(check): Elementary completeness checks',20495,20551). | |
1360 | section([11,7],'library(clpfd): Constraint Logic Programming over Finite Domains',20553,21505). | |
1361 | section([11,7,0,1],'Introduction',20558,20586). | |
1362 | section([11,7,0,2],'Arithmetic constraints',20588,20621). | |
1363 | section([11,7,0,3],'Reification',20623,20640). | |
1364 | section([11,7,0,4],'Examples',20642,20685). | |
1365 | section([11,7,0,5],'Search',20687,20747). | |
1366 | section([11,7,0,6],'Declarative integer arithmetic',20749,20784). | |
1367 | section([11,7,0,7],'Advanced topics',20786,21505). | |
1368 | section([11,8],'library(clpqr): Constraint Logic Programming over Rationals and',21507,21729). | |
1369 | section([11,8,1],'Solver predicates',21541,21611). | |
1370 | section([11,8,2],'Syntax of the predicate arguments',21613,21652). | |
1371 | section([11,8,3],'Use of unification',21654,21671). | |
1372 | section([11,8,4],'Non-linear constraints',21673,21698). | |
1373 | section([11,8,5],'Status and known problems',21700,21729). | |
1374 | section([11,9],'library(csv): Process CSV (Comma-Separated Values) data',21731,21851). | |
1375 | section([11,10],'library(debug): Print debug messages and test assertions',21853,21965). | |
1376 | section([11,11],'library(gensym): Generate unique identifiers',21967,21998). | |
1377 | section([11,12],'library(lists): List Manipulation',22000,22312). | |
1378 | section([11,13],'library(nb_set): Non-backtrackable set',22314,22372). | |
1379 | section([11,14],'library(www_browser): Activating your Web-browser',22374,22400). | |
1380 | section([11,15],'library(option): Option list processing',22402,22510). | |
1381 | section([11,16],'library(optparse): command line parsing',22512,22875). | |
1382 | section([11,16,1],'Notes and tips',22773,22875). | |
1383 | section([11,17],'library(ordsets): Ordered set manipulation',22877,23043). | |
1384 | section([11,18],'library(pairs): Operations on key-value lists',23045,23110). | |
1385 | section([11,19],'library(pio): Pure I/O',23112,23230). | |
1386 | section([11,19,1],'library(pure_input): Pure Input from files',23120,23230). | |
1387 | section([11,20],'library(predicate_options): Declare option-processing of predi-',23232,23504). | |
1388 | section([11,20,1],'The strength and weakness of predicate options',23238,23288). | |
1389 | section([11,20,2],'Options as arguments or environment?',23290,23322). | |
1390 | section([11,20,3],'Improving on the current situation',23324,23504). | |
1391 | section([11,20,3,1],'Options as types',23334,23361). | |
1392 | section([11,20,3,2],'Reflective access to options',23363,23504). | |
1393 | section([11,21],'library(prolog_pack): A package manager for Prolog',23506,23669). | |
1394 | section([11,22],'library(prolog_xref): Cross-reference data collection library',23671,23770). | |
1395 | section([11,22,1],'Extending the library',23751,23770). | |
1396 | section([11,23],'library(quasi_quotations): Define Quasi Quotation syntax',23772,23890). | |
1397 | section([11,24],'library(random): Random numbers',23892,24030). | |
1398 | section([11,25],'library(readutil): Reading lines, streams and files',24032,24098). | |
1399 | section([11,26],'library(record): Access named fields in a term',24100,24197). | |
1400 | section([11,27],'library(registry): Manipulating the Windows registry',24199,24275). | |
1401 | section([11,28],'library(simplex): Solve linear programming problems',24277,24513). | |
1402 | section([11,28,1],'Example 1',24379,24411). | |
1403 | section([11,28,2],'Example 2',24413,24471). | |
1404 | section([11,28,3],'Example 3',24473,24513). | |
1405 | section([11,29],'library(thread_pool): Resource bounded thread management',24515,24632). | |
1406 | section([11,30],'library(ugraphs): Unweighted Graphs',24634,24844). | |
1407 | section([11,31],'library(url): Analysing and constructing URL',24846,25003). | |
1408 | section([11,32],'library(varnumbers): Utilities for numbered terms',25005,25060). | |
1409 | section([12],'HACKERS CORNER',25062,25751). | |
1410 | section([12,1],'Examining the Environment Stack',25072,25205). | |
1411 | section([12,2],'Ancestral cuts',25207,25216). | |
1412 | section([12,3],'Syntax extensions',25218,25304). | |
1413 | section([12,3,1],'Block operators',25265,25304). | |
1414 | section([12,4],'Intercepting the Tracer',25306,25436). | |
1415 | section([12,5],'Breakpoint and watchpoint handling',25438,25525). | |
1416 | section([12,6],'Adding context to errors: prolog_exception_hook',25527,25578). | |
1417 | section([12,7],'Hooks using the exception predicate',25580,25619). | |
1418 | section([12,8],'Hooks for integrating libraries',25621,25682). | |
1419 | section([12,9],'Hooks for loading files',25684,25723). | |
1420 | section([12,10],'Readline Interaction',25725,25751). | |
1421 | section([13],'COMPATIBILITY WITH OTHER PROLOG DIALECTS',25753,25948). | |
1422 | section([13,1],'Some considerations for writing portable code',25833,25948). | |
1423 | section([14],'GLOSSARY OF TERMS',25950,26242). | |
1424 | section([15],'SWI-PROLOG LICENSE CONDITIONS AND TOOLS',26244,26437). | |
1425 | section([15,1],'The SWI-Prolog kernel and foreign libraries',26274,26306). | |
1426 | section([15,1,1],'The SWI-Prolog Prolog libraries',26289,26306). | |
1427 | section([15,2],'Contributing to the SWI-Prolog project',26308,26318). | |
1428 | section([15,3],'Software support to keep track of license conditions',26320,26401). | |
1429 | section([15,4],'License conditions inherited from used code',26403,26437). | |
1430 | section([15,4,1],'Cryptographic routines',26406,26437). | |
1431 | section([16],'SUMMARY',26439,27799). | |
1432 | section([16,1],'Predicates',26442,27189). | |
1433 | section([16,2],'Library predicates',27191,27653). | |
1434 | section([16,2,1],'library(aggregate)',27194,27203). | |
1435 | section([16,2,2],'library(apply)',27205,27225). | |
1436 | section([16,2,3],'library(assoc)',27227,27244). | |
1437 | section([16,2,4],'library(broadcast)',27246,27256). | |
1438 | section([16,2,5],'library(charsio)',27258,27275). | |
1439 | section([16,2,6],'library(check)',27277,27283). | |
1440 | section([16,2,7],'library(csv)',27285,27295). | |
1441 | section([16,2,8],'library(lists)',27297,27335). | |
1442 | section([16,2,9],'library(debug)',27337,27350). | |
1443 | section([16,2,10],'library(option)',27352,27360). | |
1444 | section([16,2,11],'library(optparse)',27362,27368). | |
1445 | section([16,2,12],'library(ordsets)',27370,27394). | |
1446 | section([16,2,13],'library(predicate_options)',27396,27410). | |
1447 | section([16,2,14],'library(prologpack)',27412,27427). | |
1448 | section([16,2,15],'library(prologxref)',27429,27441). | |
1449 | section([16,2,16],'library(pairs)',27443,27451). | |
1450 | section([16,2,17],'library(pio)',27453,27465). | |
1451 | section([16,2,17,1],'library(pure_input)',27456,27465). | |
1452 | section([16,2,18],'library(random)',27467,27484). | |
1453 | section([16,2,19],'library(readutil)',27486,27494). | |
1454 | section([16,2,20],'library(record)',27496,27499). | |
1455 | section([16,2,21],'library(registry)',27501,27513). | |
1456 | section([16,2,22],'library(ugraphs)',27515,27536). | |
1457 | section([16,2,23],'library(url)',27538,27551). | |
1458 | section([16,2,24],'library(www_browser)',27553,27556). | |
1459 | section([16,2,25],'library(clp/clpfd)',27558,27605). | |
1460 | section([16,2,26],'library(clpqr)',27607,27619). | |
1461 | section([16,2,27],'library(clp/simplex)',27621,27635). | |
1462 | section([16,2,28],'library(thread_pool)',27637,27645). | |
1463 | section([16,2,29],'library(varnumbers)',27647,27653). | |
1464 | section([16,3],'Arithmetic Functions',27655,27732). | |
1465 | section([16,4],'Operators',27734,27799). | |
1466 | section([17],'Bibliography',27801,29102). | |
1467 | section([],'Index',27900,29102). | |
1167 | section([4,16,2],'ISO Input and Output Streams',6907,7372). | |
1168 | section([4,16,3],'Edinburgh-style I/O',7374,7493). | |
1169 | section([],'Compatibility notes',7422,29118). | |
1170 | section([4,16,4],'Switching between Edinburgh and ISO I/O',7495,7519). | |
1171 | section([4,16,5],'Write onto atoms, code-lists, etc.',7521,7574). | |
1172 | section([4,17],'Status of streams',7576,7647). | |
1173 | section([4,18],'Primitive character I/O',7649,7888). | |
1174 | section([4,19],'Term reading and writing',7890,8329). | |
1175 | section([4,20],'Analysing and Constructing Terms',8331,8522). | |
1176 | section([4,20,1],'Non-logical operations on terms',8444,8522). | |
1177 | section([4,21],'Analysing and Constructing Atoms',8524,8711). | |
1178 | section([4,22],'Localization (locale) support',8713,8798). | |
1179 | section([4,23],'Character properties',8800,8987). | |
1180 | section([4,23,1],'Case conversion',8932,8949). | |
1181 | section([4,23,2],'White space normalization',8951,8959). | |
1182 | section([4,23,3],'Language-specific comparison',8961,8987). | |
1183 | section([4,24],'Representing text in strings',8989,9076). | |
1184 | section([4,25],'Operators',9078,9184). | |
1185 | section([4,26],'Character Conversion',9186,9203). | |
1186 | section([4,27],'Arithmetic',9205,9845). | |
1187 | section([4,27,1],'Special purpose integer arithmetic',9215,9243). | |
1188 | section([4,27,2],'General purpose arithmetic',9245,9845). | |
1189 | section([4,27,2,1],'Arithmetic types',9291,9343). | |
1190 | section([4,27,2,2],'Rational number examples',9345,9376). | |
1191 | section([4,27,2,3],'Arithmetic Functions',9378,9845). | |
1192 | section([4,28],'Misc arithmetic support predicates',9847,9895). | |
1193 | section([4,29],'Built-in list operations',9897,9991). | |
1194 | section([4,30],'Finding all Solutions to a Goal',9993,10052). | |
1195 | section([4,31],'Forall',10054,10098). | |
1196 | section([4,32],'Formatted Write',10100,10425). | |
1197 | section([4,32,1],'Writef',10110,10190). | |
1198 | section([4,32,2],'Format',10192,10386). | |
1199 | section([4,32,3],'Programming Format',10388,10425). | |
1200 | section([4,33],'Terminal Control',10427,10473). | |
1201 | section([4,34],'Operating System Interaction',10475,11135). | |
1202 | section([4,34,1],'Windows-specific Operating System Interaction',10599,10709). | |
1203 | section([4,34,2],'Dealing with time and date',10711,11073). | |
1204 | section([4,34,2,1],'Time and date data structures',10750,10778). | |
1205 | section([4,34,2,2],'Time and date predicates',10780,11073). | |
1206 | section([4,34,3],'Controlling the swipl-win.exe console window',11075,11135). | |
1207 | section([4,35],'File System Interaction',11137,11413). | |
1208 | section([4,36],'User Top-level Manipulation',11415,11509). | |
1209 | section([4,37],'Creating a Protocol of the User Interaction',11511,11536). | |
1210 | section([4,38],'Debugging and Tracing Programs',11538,11752). | |
1211 | section([4,39],'Obtaining Runtime Statistics',11754,11858). | |
1212 | section([4,40],'Execution profiling',11860,12035). | |
1213 | section([4,40,1],'Profiling predicates',11871,11937). | |
1214 | section([4,40,2],'Visualizing profiling data',11939,11986). | |
1215 | section([4,40,3],'Information gathering',11988,12035). | |
1216 | section([4,40,3,1],'Profiling in the Windows Implementation',12020,12035). | |
1217 | section([4,41],'Memory Management',12037,12123). | |
1218 | section([4,42],'Windows DDE interface',12125,12259). | |
1219 | section([4,42,1],'DDE client interface',12141,12198). | |
1220 | section([4,42,2],'DDE server mode',12200,12259). | |
1221 | section([4,43],'Miscellaneous',12261,12319). | |
1222 | section([5],'MODULES',12321,13140). | |
1223 | section([5,1],'Why Use Modules?',12348,12368). | |
1224 | section([5,2],'Defining a Module',12370,12424). | |
1225 | section([5,3],'Importing Predicates into a Module',12426,12512). | |
1226 | section([5,4],'Defining a meta-predicate',12514,12642). | |
1227 | section([5,5],'Overruling Module Boundaries',12644,12701). | |
1228 | section([5,5,1],'Explicit manipulation of the calling context',12676,12701). | |
1229 | section([5,6],'Interacting with modules from the top level',12703,12731). | |
1230 | section([5,7],'Composing modules from other modules',12733,12764). | |
1231 | section([5,8],'Operators and modules',12766,12796). | |
1232 | section([5,9],'Dynamic importing using import modules',12798,12846). | |
1233 | section([5,10],'Reserved Modules and using the `user\' module',12848,12863). | |
1234 | section([5,11],'An alternative import/export interface',12865,12890). | |
1235 | section([5,12],'Dynamic Modules',12892,12925). | |
1236 | section([5,13],'Transparent predicates: definition and context module',12927,13018). | |
1237 | section([5,14],'Module properties',13020,13083). | |
1238 | section([5,15],'Compatibility of the Module System',13085,13140). | |
1239 | section([6],'SPECIAL VARIABLES AND COROUTINING',13142,13590). | |
1240 | section([6,1],'Attributed variables',13189,13396). | |
1241 | section([6,1,1],'Attribute manipulation predicates',13273,13305). | |
1242 | section([6,1,2],'Attributed variable hooks',13307,13341). | |
1243 | section([6,1,3],'Operations on terms with attributed variables',13343,13372). | |
1244 | section([6,1,4],'Special purpose predicates for attributes',13374,13396). | |
1245 | section([6,2],'Coroutining',13398,13473). | |
1246 | section([6,3],'Global variables',13475,13590). | |
1247 | section([6,3,1],'Compatibility of SWI-Prolog Global Variables',13577,13590). | |
1248 | section([7],'CHR: CONSTRAINT HANDLING RULES',13592,14469). | |
1249 | section([7,1],'Introduction',13614,13642). | |
1250 | section([7,2],'Syntax and Semantics',13644,13821). | |
1251 | section([7,2,1],'Syntax of CHR rules',13647,13699). | |
1252 | section([7,2,2],'Semantics',13701,13821). | |
1253 | section([7,3],'CHR in SWI-Prolog Programs',13823,14069). | |
1254 | section([7,3,1],'Embedding in Prolog Programs',13826,13831). | |
1255 | section([7,3,2],'Constraint declaration',13833,14042). | |
1256 | section([7,3,3],'Compilation',14044,14069). | |
1257 | section([7,4],'Debugging',14071,14212). | |
1258 | section([7,4,1],'Ports',14081,14122). | |
1259 | section([7,4,2],'Tracing',14124,14171). | |
1260 | section([7,4,3],'CHR Debugging Predicates',14173,14212). | |
1261 | section([7,5],'Examples',14214,14273). | |
1262 | section([7,6],'Backwards Compatibility',14275,14353). | |
1263 | section([7,6,1],'The Old SICStus CHR implemenation',14278,14321). | |
1264 | section([7,6,2],'The Old ECLiPSe CHR implemenation',14323,14353). | |
1265 | section([7,7],'Programming Tips and Tricks',14355,14398). | |
1266 | section([7,8],'Compiler Errors and Warnings',14400,14469). | |
1267 | section([7,8,1],'CHR Compiler Errors',14406,14469). | |
1268 | section([8],'MULTITHREADED APPLICATIONS',14471,15486). | |
1269 | section([8,1],'Creating and destroying Prolog threads',14507,14688). | |
1270 | section([8,2],'Monitoring threads',14690,14760). | |
1271 | section([8,3],'Thread communication',14762,15035). | |
1272 | section([8,3,1],'Message queues',14765,14953). | |
1273 | section([8,3,2],'Signalling threads',14955,14986). | |
1274 | section([8,3,3],'Threads and dynamic predicates',14988,15035). | |
1275 | section([8,4],'Thread synchronisation',15037,15152). | |
1276 | section([8,5],'Thread support library(threadutil)',15154,15259). | |
1277 | section([8,5,1],'Debugging threads',15180,15244). | |
1278 | section([8,5,2],'Profiling threads',15246,15259). | |
1279 | section([8,6],'Multithreaded mixed C and Prolog applications',15261,15430). | |
1280 | section([8,6,1],'A Prolog thread for each native thread (one-to-one)',15283,15363). | |
1281 | section([8,6,2],'Pooling Prolog engines (many-to-many)',15365,15430). | |
1282 | section([8,7],'Multithreading and the XPCE graphics system',15432,15486). | |
1283 | section([9],'FOREIGN LANGUAGE INTERFACE',15488,19516). | |
1284 | section([9,1],'Overview of the Interface',15507,15532). | |
1285 | section([9,2],'Linking Foreign Modules',15534,15801). | |
1286 | section([9,2,1],'What linking is provided?',15545,15553). | |
1287 | section([9,2,2],'What kind of loading should I be using?',15555,15571). | |
1288 | section([9,2,3],'library(shlib): Utility library for loading foreign objects',15573,15696). | |
1289 | section([9,2,4],'Low-level operations on shared libraries',15698,15739). | |
1290 | section([9,2,5],'Static Linking',15741,15801). | |
1291 | section([9,3],'Interface Data Types',15803,15969). | |
1292 | section([9,3,1],'Type term_t: a reference to a Prolog term',15806,15920). | |
1293 | section([9,3,1,1],'Interaction with the garbage collector and stack-shifter',15909,15920). | |
1294 | section([9,3,2],'Other foreign interface types',15922,15969). | |
1295 | section([9,4],'The Foreign Include File',15971,19047). | |
1296 | section([9,4,1],'Argument Passing and Control',15974,16113). | |
1297 | section([9,4,1,1],'Non-deterministic Foreign Predicates',15993,16113). | |
1298 | section([9,4,2],'Atoms and functors',16115,16201). | |
1299 | section([9,4,2,1],'Atoms and atom garbage collection',16167,16201). | |
1300 | section([9,4,3],'Analysing Terms via the Foreign Interface',16203,16758). | |
1301 | section([9,4,3,1],'Testing the type of a term',16216,16324). | |
1302 | section([9,4,3,2],'Reading data from a term',16326,16517). | |
1303 | section([9,4,3,3],'Exchanging text using length and string',16519,16583). | |
1304 | section([9,4,3,4],'Wide-character versions',16585,16632). | |
1305 | section([9,4,3,5],'Reading a list',16634,16704). | |
1306 | section([9,4,3,6],'An example: defining write/1 in C',16706,16758). | |
1307 | section([9,4,4],'Constructing Terms',16760,16900). | |
1308 | section([9,4,5],'Unifying data',16902,17292). | |
1309 | section([9,4,6],'Convenient functions to generate Prolog exceptions',17294,17445). | |
1310 | section([9,4,7],'BLOBS: Using atoms to store arbitrary binary data',17447,17596). | |
1311 | section([9,4,7,1],'Defining a BLOB type',17469,17556). | |
1312 | section([9,4,7,2],'Accessing blobs',17558,17596). | |
1313 | section([9,4,8],'Exchanging GMP numbers',17598,17682). | |
1314 | section([9,4,9],'Calling Prolog from C',17684,17833). | |
1315 | section([9,4,9,1],'Predicate references',17697,17724). | |
1316 | section([9,4,9,2],'Initiating a query from C',17726,17833). | |
1317 | section([9,4,10],'Discarding Data',17835,17895). | |
1318 | section([9,4,11],'Foreign Code and Modules',17897,17936). | |
1319 | section([9,4,12],'Prolog exceptions in foreign code',17938,18065). | |
1320 | section([9,4,13],'Catching Signals (Software Interrupts)',18067,18140). | |
1321 | section([9,4,14],'Miscellaneous',18142,18302). | |
1322 | section([9,4,14,1],'Term Comparison',18145,18156). | |
1323 | section([9,4,14,2],'Recorded database',18158,18251). | |
1324 | section([9,4,14,3],'Getting file names',18253,18302). | |
1325 | section([9,4,15],'Errors and warnings',18304,18317). | |
1326 | section([9,4,16],'Environment Control from Foreign Code',18319,18400). | |
1327 | section([9,4,17],'Querying Prolog',18402,18439). | |
1328 | section([9,4,18],'Registering Foreign Predicates',18441,18565). | |
1329 | section([9,4,19],'Foreign Code Hooks',18567,18652). | |
1330 | section([9,4,20],'Storing foreign data',18654,18846). | |
1331 | section([9,4,20,1],'Examples for storing foreign data',18724,18846). | |
1332 | section([9,4,21],'Embedding SWI-Prolog in other applications',18848,19047). | |
1333 | section([9,4,21,1],'Threading, Signals and embedded Prolog',19008,19047). | |
1334 | section([9,5],'Linking embedded applications using swipl-ld',19049,19268). | |
1335 | section([9,5,1],'A simple example',19182,19268). | |
1336 | section([9,6],'The Prolog `home\' directory',19270,19304). | |
1337 | section([9,7],'Example of Using the Foreign Interface',19306,19365). | |
1338 | section([9,8],'Notes on Using Foreign Code',19367,19516). | |
1339 | section([9,8,1],'Memory Allocation',19370,19432). | |
1340 | section([9,8,1,1],'Boehm-GC support',19402,19432). | |
1341 | section([9,8,2],'Compatibility between Prolog versions',19434,19446). | |
1342 | section([9,8,3],'Debugging and profiling foreign code (valgrind)',19448,19468). | |
1343 | section([9,8,4],'Name Conflicts in C modules',19470,19487). | |
1344 | section([9,8,5],'Compatibility of the Foreign Interface',19489,19516). | |
1345 | section([10],'GENERATING RUNTIME APPLICATIONS',19518,19924). | |
1346 | section([10,1],'Limitations of qsave_program',19669,19685). | |
1347 | section([10,2],'Runtimes and Foreign Code',19687,19753). | |
1348 | section([10,3],'Using program resources',19755,19877). | |
1349 | section([10,3,1],'Resource manipulation predicates',19788,19846). | |
1350 | section([10,3,2],'The swipl-rc program',19848,19877). | |
1351 | section([10,4],'Finding Application files',19879,19924). | |
1352 | section([10,4,1],'Specifying a file search path from the command line',19911,19924). | |
1353 | section([11],'THE SWI-PROLOG LIBRARY',19926,25076). | |
1354 | section([11,1],'library(aggregate): Aggregation operators on backtrackable',19950,20111). | |
1355 | section([11,2],'library(apply): Apply predicates on a list',20113,20211). | |
1356 | section([11,3],'library(assoc): Association lists',20213,20298). | |
1357 | section([11,4],'library(broadcast): Broadcast and receive event notifications',20300,20414). | |
1358 | section([11,5],'library(charsio): I/O on Lists of Character Codes',20416,20503). | |
1359 | section([11,6],'library(check): Elementary completeness checks',20505,20561). | |
1360 | section([11,7],'library(clpfd): Constraint Logic Programming over Finite Domains',20563,21514). | |
1361 | section([11,7,0,1],'Introduction',20568,20596). | |
1362 | section([11,7,0,2],'Arithmetic constraints',20598,20631). | |
1363 | section([11,7,0,3],'Reification',20633,20650). | |
1364 | section([11,7,0,4],'Examples',20652,20695). | |
1365 | section([11,7,0,5],'Search',20697,20757). | |
1366 | section([11,7,0,6],'Declarative integer arithmetic',20759,21514). | |
1367 | section([11,8],'library(clpqr): Constraint Logic Programming over Rationals and',21516,21738). | |
1368 | section([11,8,1],'Solver predicates',21550,21620). | |
1369 | section([11,8,2],'Syntax of the predicate arguments',21622,21661). | |
1370 | section([11,8,3],'Use of unification',21663,21680). | |
1371 | section([11,8,4],'Non-linear constraints',21682,21707). | |
1372 | section([11,8,5],'Status and known problems',21709,21738). | |
1373 | section([11,9],'library(csv): Process CSV (Comma-Separated Values) data',21740,21860). | |
1374 | section([11,10],'library(debug): Print debug messages and test assertions',21862,21974). | |
1375 | section([11,11],'library(gensym): Generate unique identifiers',21976,22007). | |
1376 | section([11,12],'library(lists): List Manipulation',22009,22322). | |
1377 | section([11,13],'library(nb_set): Non-backtrackable set',22324,22382). | |
1378 | section([11,14],'library(www_browser): Activating your Web-browser',22384,22410). | |
1379 | section([11,15],'library(option): Option list processing',22412,22520). | |
1380 | section([11,16],'library(optparse): command line parsing',22522,22888). | |
1381 | section([11,16,1],'Notes and tips',22786,22888). | |
1382 | section([11,17],'library(ordsets): Ordered set manipulation',22890,23057). | |
1383 | section([11,18],'library(pairs): Operations on key-value lists',23059,23124). | |
1384 | section([11,19],'library(pio): Pure I/O',23126,23245). | |
1385 | section([11,19,1],'library(pure_input): Pure Input from files',23134,23245). | |
1386 | section([11,20],'library(predicate_options): Declare option-processing of predi-',23247,23519). | |
1387 | section([11,20,1],'The strength and weakness of predicate options',23253,23303). | |
1388 | section([11,20,2],'Options as arguments or environment?',23305,23337). | |
1389 | section([11,20,3],'Improving on the current situation',23339,23519). | |
1390 | section([11,20,3,1],'Options as types',23349,23376). | |
1391 | section([11,20,3,2],'Reflective access to options',23378,23519). | |
1392 | section([11,21],'library(prolog_pack): A package manager for Prolog',23521,23684). | |
1393 | section([11,22],'library(prolog_xref): Cross-reference data collection library',23686,23785). | |
1394 | section([11,22,1],'Extending the library',23766,23785). | |
1395 | section([11,23],'library(quasi_quotations): Define Quasi Quotation syntax',23787,23905). | |
1396 | section([11,24],'library(random): Random numbers',23907,24045). | |
1397 | section([11,25],'library(readutil): Reading lines, streams and files',24047,24113). | |
1398 | section([11,26],'library(record): Access named fields in a term',24115,24212). | |
1399 | section([11,27],'library(registry): Manipulating the Windows registry',24214,24290). | |
1400 | section([11,28],'library(simplex): Solve linear programming problems',24292,24528). | |
1401 | section([11,28,1],'Example 1',24394,24426). | |
1402 | section([11,28,2],'Example 2',24428,24486). | |
1403 | section([11,28,3],'Example 3',24488,24528). | |
1404 | section([11,29],'library(thread_pool): Resource bounded thread management',24530,24648). | |
1405 | section([11,30],'library(ugraphs): Unweighted Graphs',24650,24860). | |
1406 | section([11,31],'library(url): Analysing and constructing URL',24862,25019). | |
1407 | section([11,32],'library(varnumbers): Utilities for numbered terms',25021,25076). | |
1408 | section([12],'HACKERS CORNER',25078,25767). | |
1409 | section([12,1],'Examining the Environment Stack',25088,25221). | |
1410 | section([12,2],'Ancestral cuts',25223,25232). | |
1411 | section([12,3],'Syntax extensions',25234,25320). | |
1412 | section([12,3,1],'Block operators',25281,25320). | |
1413 | section([12,4],'Intercepting the Tracer',25322,25452). | |
1414 | section([12,5],'Breakpoint and watchpoint handling',25454,25541). | |
1415 | section([12,6],'Adding context to errors: prolog_exception_hook',25543,25594). | |
1416 | section([12,7],'Hooks using the exception predicate',25596,25635). | |
1417 | section([12,8],'Hooks for integrating libraries',25637,25698). | |
1418 | section([12,9],'Hooks for loading files',25700,25739). | |
1419 | section([12,10],'Readline Interaction',25741,25767). | |
1420 | section([13],'COMPATIBILITY WITH OTHER PROLOG DIALECTS',25769,25964). | |
1421 | section([13,1],'Some considerations for writing portable code',25849,25964). | |
1422 | section([14],'GLOSSARY OF TERMS',25966,26258). | |
1423 | section([15],'SWI-PROLOG LICENSE CONDITIONS AND TOOLS',26260,26453). | |
1424 | section([15,1],'The SWI-Prolog kernel and foreign libraries',26290,26322). | |
1425 | section([15,1,1],'The SWI-Prolog Prolog libraries',26305,26322). | |
1426 | section([15,2],'Contributing to the SWI-Prolog project',26324,26334). | |
1427 | section([15,3],'Software support to keep track of license conditions',26336,26417). | |
1428 | section([15,4],'License conditions inherited from used code',26419,26453). | |
1429 | section([15,4,1],'Cryptographic routines',26422,26453). | |
1430 | section([16],'SUMMARY',26455,27815). | |
1431 | section([16,1],'Predicates',26458,27205). | |
1432 | section([16,2],'Library predicates',27207,27669). | |
1433 | section([16,2,1],'library(aggregate)',27210,27219). | |
1434 | section([16,2,2],'library(apply)',27221,27241). | |
1435 | section([16,2,3],'library(assoc)',27243,27260). | |
1436 | section([16,2,4],'library(broadcast)',27262,27272). | |
1437 | section([16,2,5],'library(charsio)',27274,27291). | |
1438 | section([16,2,6],'library(check)',27293,27299). | |
1439 | section([16,2,7],'library(csv)',27301,27311). | |
1440 | section([16,2,8],'library(lists)',27313,27351). | |
1441 | section([16,2,9],'library(debug)',27353,27366). | |
1442 | section([16,2,10],'library(option)',27368,27376). | |
1443 | section([16,2,11],'library(optparse)',27378,27384). | |
1444 | section([16,2,12],'library(ordsets)',27386,27410). | |
1445 | section([16,2,13],'library(predicate_options)',27412,27426). | |
1446 | section([16,2,14],'library(prologpack)',27428,27443). | |
1447 | section([16,2,15],'library(prologxref)',27445,27457). | |
1448 | section([16,2,16],'library(pairs)',27459,27467). | |
1449 | section([16,2,17],'library(pio)',27469,27481). | |
1450 | section([16,2,17,1],'library(pure_input)',27472,27481). | |
1451 | section([16,2,18],'library(random)',27483,27500). | |
1452 | section([16,2,19],'library(readutil)',27502,27510). | |
1453 | section([16,2,20],'library(record)',27512,27515). | |
1454 | section([16,2,21],'library(registry)',27517,27529). | |
1455 | section([16,2,22],'library(ugraphs)',27531,27552). | |
1456 | section([16,2,23],'library(url)',27554,27567). | |
1457 | section([16,2,24],'library(www_browser)',27569,27572). | |
1458 | section([16,2,25],'library(clp/clpfd)',27574,27621). | |
1459 | section([16,2,26],'library(clpqr)',27623,27635). | |
1460 | section([16,2,27],'library(clp/simplex)',27637,27651). | |
1461 | section([16,2,28],'library(thread_pool)',27653,27661). | |
1462 | section([16,2,29],'library(varnumbers)',27663,27669). | |
1463 | section([16,3],'Arithmetic Functions',27671,27748). | |
1464 | section([16,4],'Operators',27750,27815). | |
1465 | section([17],'Bibliography',27817,29118). | |
1466 | section([],'Index',27916,29118). | |
1468 | 1467 | |
1469 | 1468 | |
1470 | 1469 | % Predicate function/3 |
1471 | 1470 | |
1472 | function('PL_thread_self',15284,15289). | |
1473 | function('PL_unify_thread_id',15291,15295). | |
1474 | function('PL_thread_attach_engine',15297,15331). | |
1475 | function('PL_thread_destroy_engine',15333,15343). | |
1476 | function('PL_thread_at_exit',15345,15353). | |
1477 | function('PL_create_engine',15382,15391). | |
1478 | function('PL_destroy_engine',15393,15398). | |
1479 | function('PL_set_engine',15400,15420). | |
1480 | function('PL_new_term_ref',15856,15862). | |
1481 | function('PL_new_term_refs',15864,15879). | |
1482 | function('PL_copy_term_ref',15881,15885). | |
1483 | function('PL_reset_term_refs',15887,15897). | |
1484 | function('PL_succeed',15974,15976). | |
1485 | function('PL_fail',15978,15981). | |
1486 | function('PL_retry',16032,16041). | |
1487 | function('PL_retry_address',16043,16047). | |
1488 | function('PL_foreign_control',16049,16054). | |
1489 | function('PL_foreign_context',16056,16061). | |
1490 | function('PL_foreign_context_address',16063,16103). | |
1491 | function('PL_new_atom',16111,16119). | |
1492 | function('PL_atom_chars',16134,16142). | |
1493 | function('PL_new_functor',16144,16147). | |
1494 | function('PL_functor_name',16149,16151). | |
1495 | function('PL_functor_arity',16153,16155). | |
1496 | function('PL_register_atom',16170,16174). | |
1497 | function('PL_unregister_atom',16176,16191). | |
1498 | function('PL_term_type',16209,16252). | |
1499 | function('PL_is_variable',16254,16256). | |
1500 | function('PL_is_ground',16258,16261). | |
1501 | function('PL_is_atom',16263,16265). | |
1502 | function('PL_is_string',16267,16269). | |
1503 | function('PL_is_integer',16271,16273). | |
1504 | function('PL_is_float',16275,16277). | |
1505 | function('PL_is_callable',16279,16282). | |
1506 | function('PL_is_compound',16284,16286). | |
1507 | function('PL_is_functor',16288,16292). | |
1508 | function('PL_is_list',16294,16297). | |
1509 | function('PL_is_pair',16299,16302). | |
1510 | function('PL_is_atomic',16304,16306). | |
1511 | function('PL_is_number',16308,16310). | |
1512 | function('PL_is_acyclic',16312,16314). | |
1513 | function('PL_get_atom',16323,16330). | |
1514 | function('PL_get_atom_chars',16332,16337). | |
1515 | function('PL_get_string_chars',16339,16345). | |
1516 | function('PL_get_chars',16347,16429). | |
1517 | function('PL_get_list_chars',16431,16434). | |
1518 | function('PL_get_integer',16436,16440). | |
1519 | function('PL_get_long',16442,16448). | |
1520 | function('PL_get_int64',16450,16455). | |
1521 | function('PL_get_intptr',16457,16462). | |
1522 | function('PL_get_bool',16464,16467). | |
1523 | function('PL_get_pointer',16469,16475). | |
1524 | function('PL_get_float',16477,16479). | |
1525 | function('PL_get_functor',16481,16485). | |
1526 | function('PL_get_name_arity',16487,16491). | |
1527 | function('PL_get_module',16493,16497). | |
1528 | function('PL_get_arg',16499,16502). | |
1529 | function('_PL_get_arg',16504,16507). | |
1530 | function('PL_get_atom_nchars',16518,16520). | |
1531 | function('PL_get_list_nchars',16522,16524). | |
1532 | function('PL_get_nchars',16526,16528). | |
1533 | function('PL_put_atom_nchars',16530,16532). | |
1534 | function('PL_put_string_nchars',16534,16536). | |
1535 | function('PL_put_list_ncodes',16538,16540). | |
1536 | function('PL_put_list_nchars',16542,16544). | |
1537 | function('PL_unify_atom_nchars',16546,16548). | |
1538 | function('PL_unify_string_nchars',16550,16552). | |
1539 | function('PL_unify_list_ncodes',16554,16556). | |
1540 | function('PL_unify_list_nchars',16558,16563). | |
1541 | function('PL_new_atom_nchars',16565,16569). | |
1542 | function('PL_atom_nchars',16571,16573). | |
1543 | function('PL_new_atom_wchars',16588,16593). | |
1544 | function('PL_atom_wchars',16595,16601). | |
1545 | function('PL_get_wchars',16603,16606). | |
1546 | function('PL_unify_wchars',16608,16612). | |
1547 | function('PL_unify_wchars_diff',16614,16622). | |
1548 | function('PL_get_list',16651,16654). | |
1549 | function('PL_get_head',16656,16658). | |
1550 | function('PL_get_tail',16660,16662). | |
1551 | function('PL_get_nil',16664,16666). | |
1552 | function('PL_skip_list',16668,16694). | |
1553 | function('PL_put_variable',16762,16765). | |
1554 | function('PL_put_atom',16767,16770). | |
1555 | function('PL_put_bool',16772,16775). | |
1556 | function('PL_put_atom_chars',16777,16781). | |
1557 | function('PL_put_string_chars',16783,16786). | |
1558 | function('PL_put_string_nchars',16788,16792). | |
1559 | function('PL_put_list_chars',16794,16796). | |
1560 | function('PL_put_integer',16798,16800). | |
1561 | function('PL_put_int64',16802,16804). | |
1562 | function('PL_put_pointer',16806,16809). | |
1563 | function('PL_put_float',16811,16813). | |
1564 | function('PL_put_functor',16815,16820). | |
1565 | function('PL_put_list',16822,16824). | |
1566 | function('PL_put_nil',16826,16828). | |
1567 | function('PL_put_term',16830,16832). | |
1568 | function('PL_cons_functor',16834,16859). | |
1569 | function('PL_cons_functor_v',16861,16866). | |
1570 | function('PL_cons_list',16868,16890). | |
1571 | function('PL_unify',16940,16972). | |
1572 | function('PL_unify_atom',16974,16976). | |
1573 | function('PL_unify_bool',16978,16980). | |
1574 | function('PL_unify_chars',16982,16995). | |
1575 | function('PL_unify_atom_chars',16997,17000). | |
1576 | function('PL_unify_list_chars',17002,17004). | |
1577 | function('PL_unify_string_chars',17006,17010). | |
1578 | function('PL_unify_string_nchars',17012,17016). | |
1579 | function('PL_unify_integer',17018,17020). | |
1580 | function('PL_unify_int64',17022,17024). | |
1581 | function('PL_unify_float',17026,17028). | |
1582 | function('PL_unify_pointer',17030,17033). | |
1583 | function('PL_unify_functor',17035,17040). | |
1584 | function('PL_unify_list',17042,17073). | |
1585 | function('PL_unify_nil',17075,17077). | |
1586 | function('PL_unify_arg',17079,17081). | |
1587 | function('PL_unify_term',17083,17234). | |
1588 | function('PL_chars_to_term',17236,17267). | |
1589 | function('PL_wchars_to_term',17269,17271). | |
1590 | function('PL_quote',17273,17282). | |
1591 | function('PL_get_atom_ex',17314,17317). | |
1592 | function('PL_get_integer_ex',17319,17323). | |
1593 | function('PL_get_long_ex',17325,17329). | |
1594 | function('PL_get_int64_ex',17331,17335). | |
1595 | function('PL_get_intptr_ex',17337,17341). | |
1596 | function('PL_get_size_ex',17343,17347). | |
1597 | function('PL_get_bool_ex',17349,17352). | |
1598 | function('PL_get_float_ex',17354,17357). | |
1599 | function('PL_get_char_ex',17359,17363). | |
1600 | function('PL_get_pointer_ex',17365,17368). | |
1601 | function('PL_get_list_ex',17370,17373). | |
1602 | function('PL_get_nil_ex',17375,17378). | |
1603 | function('PL_unify_list_ex',17380,17383). | |
1604 | function('PL_unify_nil_ex',17385,17388). | |
1605 | function('PL_unify_bool_ex',17390,17400). | |
1606 | function('PL_instantiation_error',17402,17405). | |
1607 | function('PL_uninstantiation_error',17407,17410). | |
1608 | function('PL_representation_error',17412,17414). | |
1609 | function('PL_type_error',17416,17418). | |
1610 | function('PL_domain_error',17420,17422). | |
1611 | function('PL_existence_error',17424,17426). | |
1612 | function('PL_permission_error',17428,17431). | |
1613 | function('PL_resource_error',17433,17435). | |
1614 | function('PL_unregister_blob_type',17538,17546). | |
1615 | function('PL_is_blob',17556,17559). | |
1616 | function('PL_unify_blob',17561,17564). | |
1617 | function('PL_put_blob',17566,17574). | |
1618 | function('PL_get_blob',17576,17580). | |
1619 | function('PL_blob_data',17582,17586). | |
1620 | function('PL_get_mpz',17646,17652). | |
1621 | function('PL_get_mpq',17654,17661). | |
1622 | function('PL_unify_mpz',17663,17666). | |
1623 | function('PL_unify_mpq',17668,17672). | |
1624 | function('PL_pred',17695,17700). | |
1625 | function('PL_predicate',17702,17705). | |
1626 | function('PL_predicate_info',17707,17714). | |
1627 | function('PL_open_query',17728,17791). | |
1628 | function('PL_next_solution',17793,17798). | |
1629 | function('PL_cut_query',17800,17804). | |
1630 | function('PL_close_query',17806,17809). | |
1631 | function('PL_call_predicate',17811,17815). | |
1632 | function('PL_call',17817,17823). | |
1633 | function('PL_open_foreign_frame',17834,17840). | |
1634 | function('PL_close_foreign_frame',17842,17846). | |
1635 | function('PL_discard_foreign_frame',17848,17851). | |
1636 | function('PL_rewind_foreign_frame',17853,17885). | |
1637 | function('PL_context',17893,17896). | |
1638 | function('PL_strip_module',17898,17918). | |
1639 | function('PL_module_name',17920,17922). | |
1640 | function('PL_new_module',17924,17926). | |
1641 | function('PL_raise_exception',18003,18030). | |
1642 | function('PL_throw',18032,18035). | |
1643 | function('PL_exception',18037,18049). | |
1644 | function('PL_clear_exception',18051,18055). | |
1645 | function('PL_signal',18077,18103). | |
1646 | function('PL_raise',18105,18109). | |
1647 | function('PL_handle_signals',18111,18122). | |
1648 | function('PL_get_signum_ex',18124,18130). | |
1649 | function('PL_compare',18138,18141). | |
1650 | function('PL_same_compound',18143,18146). | |
1651 | function('PL_record',18166,18171). | |
1652 | function('PL_recorded',18173,18179). | |
1653 | function('PL_erase',18181,18216). | |
1654 | function('PL_record_external',18218,18230). | |
1655 | function('PL_recorded_external',18232,18236). | |
1656 | function('PL_erase_external',18238,18241). | |
1657 | function('PL_get_file_name',18251,18284). | |
1658 | function('PL_get_file_nameW',18286,18292). | |
1659 | function('PL_warning',18302,18307). | |
1660 | function('PL_action',18312,18366). | |
1661 | function('PL_backtrace',18368,18390). | |
1662 | function('PL_query',18395,18429). | |
1663 | function('PL_register_foreign_in_module',18434,18507). | |
1664 | function('PL_register_foreign',18509,18512). | |
1665 | function('PL_register_extensions_in_module',18514,18550). | |
1666 | function('PL_register_extensions',18552,18555). | |
1667 | function('PL_dispatch_hook',18562,18572). | |
1668 | function('PL_abort_hook',18574,18583). | |
1669 | function('PL_abort_unhook',18585,18588). | |
1670 | function('PL_on_halt',18590,18598). | |
1671 | function('PL_exit_hook',18600,18603). | |
1672 | function('PL_agc_hook',18605,18642). | |
1673 | function('PL_initialise',18873,18929). | |
1674 | function('PL_is_initialised',18931,18937). | |
1675 | function('PL_install_readline',18939,18944). | |
1676 | function('PL_toplevel',18946,18949). | |
1677 | function('PL_cleanup',18951,18975). | |
1678 | function('PL_cleanup_fork',18977,18990). | |
1679 | function('PL_halt',18992,18996). | |
1680 | function('PL_malloc',19374,19379). | |
1681 | function('PL_realloc',19381,19385). | |
1682 | function('PL_free',19387,19390). | |
1683 | function('PL_malloc_atomic',19402,19403). | |
1684 | function('PL_malloc_uncollectable',19405,19406). | |
1685 | function('PL_malloc_atomic_uncollectable',19408,19414). | |
1686 | function('PL_malloc_stubborn',19416,19417). | |
1687 | function('PL_end_stubborn_change',19419,19422). | |
1688 | function('PL_license',26398,26401). | |
1471 | function('PL_thread_self',15294,15299). | |
1472 | function('PL_unify_thread_id',15301,15305). | |
1473 | function('PL_thread_attach_engine',15307,15341). | |
1474 | function('PL_thread_destroy_engine',15343,15353). | |
1475 | function('PL_thread_at_exit',15355,15363). | |
1476 | function('PL_create_engine',15392,15401). | |
1477 | function('PL_destroy_engine',15403,15408). | |
1478 | function('PL_set_engine',15410,15430). | |
1479 | function('PL_new_term_ref',15866,15872). | |
1480 | function('PL_new_term_refs',15874,15889). | |
1481 | function('PL_copy_term_ref',15891,15895). | |
1482 | function('PL_reset_term_refs',15897,15907). | |
1483 | function('PL_succeed',15984,15986). | |
1484 | function('PL_fail',15988,15991). | |
1485 | function('PL_retry',16042,16051). | |
1486 | function('PL_retry_address',16053,16057). | |
1487 | function('PL_foreign_control',16059,16064). | |
1488 | function('PL_foreign_context',16066,16071). | |
1489 | function('PL_foreign_context_address',16073,16113). | |
1490 | function('PL_new_atom',16121,16129). | |
1491 | function('PL_atom_chars',16144,16152). | |
1492 | function('PL_new_functor',16154,16157). | |
1493 | function('PL_functor_name',16159,16161). | |
1494 | function('PL_functor_arity',16163,16165). | |
1495 | function('PL_register_atom',16180,16184). | |
1496 | function('PL_unregister_atom',16186,16201). | |
1497 | function('PL_term_type',16219,16262). | |
1498 | function('PL_is_variable',16264,16266). | |
1499 | function('PL_is_ground',16268,16271). | |
1500 | function('PL_is_atom',16273,16275). | |
1501 | function('PL_is_string',16277,16279). | |
1502 | function('PL_is_integer',16281,16283). | |
1503 | function('PL_is_float',16285,16287). | |
1504 | function('PL_is_callable',16289,16292). | |
1505 | function('PL_is_compound',16294,16296). | |
1506 | function('PL_is_functor',16298,16302). | |
1507 | function('PL_is_list',16304,16307). | |
1508 | function('PL_is_pair',16309,16312). | |
1509 | function('PL_is_atomic',16314,16316). | |
1510 | function('PL_is_number',16318,16320). | |
1511 | function('PL_is_acyclic',16322,16324). | |
1512 | function('PL_get_atom',16333,16340). | |
1513 | function('PL_get_atom_chars',16342,16347). | |
1514 | function('PL_get_string_chars',16349,16355). | |
1515 | function('PL_get_chars',16357,16439). | |
1516 | function('PL_get_list_chars',16441,16444). | |
1517 | function('PL_get_integer',16446,16450). | |
1518 | function('PL_get_long',16452,16458). | |
1519 | function('PL_get_int64',16460,16465). | |
1520 | function('PL_get_intptr',16467,16472). | |
1521 | function('PL_get_bool',16474,16477). | |
1522 | function('PL_get_pointer',16479,16485). | |
1523 | function('PL_get_float',16487,16489). | |
1524 | function('PL_get_functor',16491,16495). | |
1525 | function('PL_get_name_arity',16497,16501). | |
1526 | function('PL_get_module',16503,16507). | |
1527 | function('PL_get_arg',16509,16512). | |
1528 | function('_PL_get_arg',16514,16517). | |
1529 | function('PL_get_atom_nchars',16528,16530). | |
1530 | function('PL_get_list_nchars',16532,16534). | |
1531 | function('PL_get_nchars',16536,16538). | |
1532 | function('PL_put_atom_nchars',16540,16542). | |
1533 | function('PL_put_string_nchars',16544,16546). | |
1534 | function('PL_put_list_ncodes',16548,16550). | |
1535 | function('PL_put_list_nchars',16552,16554). | |
1536 | function('PL_unify_atom_nchars',16556,16558). | |
1537 | function('PL_unify_string_nchars',16560,16562). | |
1538 | function('PL_unify_list_ncodes',16564,16566). | |
1539 | function('PL_unify_list_nchars',16568,16573). | |
1540 | function('PL_new_atom_nchars',16575,16579). | |
1541 | function('PL_atom_nchars',16581,16583). | |
1542 | function('PL_new_atom_wchars',16598,16603). | |
1543 | function('PL_atom_wchars',16605,16611). | |
1544 | function('PL_get_wchars',16613,16616). | |
1545 | function('PL_unify_wchars',16618,16622). | |
1546 | function('PL_unify_wchars_diff',16624,16632). | |
1547 | function('PL_get_list',16661,16664). | |
1548 | function('PL_get_head',16666,16668). | |
1549 | function('PL_get_tail',16670,16672). | |
1550 | function('PL_get_nil',16674,16676). | |
1551 | function('PL_skip_list',16678,16704). | |
1552 | function('PL_put_variable',16772,16775). | |
1553 | function('PL_put_atom',16777,16780). | |
1554 | function('PL_put_bool',16782,16785). | |
1555 | function('PL_put_atom_chars',16787,16791). | |
1556 | function('PL_put_string_chars',16793,16796). | |
1557 | function('PL_put_string_nchars',16798,16802). | |
1558 | function('PL_put_list_chars',16804,16806). | |
1559 | function('PL_put_integer',16808,16810). | |
1560 | function('PL_put_int64',16812,16814). | |
1561 | function('PL_put_pointer',16816,16819). | |
1562 | function('PL_put_float',16821,16823). | |
1563 | function('PL_put_functor',16825,16830). | |
1564 | function('PL_put_list',16832,16834). | |
1565 | function('PL_put_nil',16836,16838). | |
1566 | function('PL_put_term',16840,16842). | |
1567 | function('PL_cons_functor',16844,16869). | |
1568 | function('PL_cons_functor_v',16871,16876). | |
1569 | function('PL_cons_list',16878,16900). | |
1570 | function('PL_unify',16950,16982). | |
1571 | function('PL_unify_atom',16984,16986). | |
1572 | function('PL_unify_bool',16988,16990). | |
1573 | function('PL_unify_chars',16992,17005). | |
1574 | function('PL_unify_atom_chars',17007,17010). | |
1575 | function('PL_unify_list_chars',17012,17014). | |
1576 | function('PL_unify_string_chars',17016,17020). | |
1577 | function('PL_unify_string_nchars',17022,17026). | |
1578 | function('PL_unify_integer',17028,17030). | |
1579 | function('PL_unify_int64',17032,17034). | |
1580 | function('PL_unify_float',17036,17038). | |
1581 | function('PL_unify_pointer',17040,17043). | |
1582 | function('PL_unify_functor',17045,17050). | |
1583 | function('PL_unify_list',17052,17083). | |
1584 | function('PL_unify_nil',17085,17087). | |
1585 | function('PL_unify_arg',17089,17091). | |
1586 | function('PL_unify_term',17093,17244). | |
1587 | function('PL_chars_to_term',17246,17277). | |
1588 | function('PL_wchars_to_term',17279,17281). | |
1589 | function('PL_quote',17283,17292). | |
1590 | function('PL_get_atom_ex',17324,17327). | |
1591 | function('PL_get_integer_ex',17329,17333). | |
1592 | function('PL_get_long_ex',17335,17339). | |
1593 | function('PL_get_int64_ex',17341,17345). | |
1594 | function('PL_get_intptr_ex',17347,17351). | |
1595 | function('PL_get_size_ex',17353,17357). | |
1596 | function('PL_get_bool_ex',17359,17362). | |
1597 | function('PL_get_float_ex',17364,17367). | |
1598 | function('PL_get_char_ex',17369,17373). | |
1599 | function('PL_get_pointer_ex',17375,17378). | |
1600 | function('PL_get_list_ex',17380,17383). | |
1601 | function('PL_get_nil_ex',17385,17388). | |
1602 | function('PL_unify_list_ex',17390,17393). | |
1603 | function('PL_unify_nil_ex',17395,17398). | |
1604 | function('PL_unify_bool_ex',17400,17410). | |
1605 | function('PL_instantiation_error',17412,17415). | |
1606 | function('PL_uninstantiation_error',17417,17420). | |
1607 | function('PL_representation_error',17422,17424). | |
1608 | function('PL_type_error',17426,17428). | |
1609 | function('PL_domain_error',17430,17432). | |
1610 | function('PL_existence_error',17434,17436). | |
1611 | function('PL_permission_error',17438,17441). | |
1612 | function('PL_resource_error',17443,17445). | |
1613 | function('PL_unregister_blob_type',17548,17556). | |
1614 | function('PL_is_blob',17566,17569). | |
1615 | function('PL_unify_blob',17571,17574). | |
1616 | function('PL_put_blob',17576,17584). | |
1617 | function('PL_get_blob',17586,17590). | |
1618 | function('PL_blob_data',17592,17596). | |
1619 | function('PL_get_mpz',17656,17662). | |
1620 | function('PL_get_mpq',17664,17671). | |
1621 | function('PL_unify_mpz',17673,17676). | |
1622 | function('PL_unify_mpq',17678,17682). | |
1623 | function('PL_pred',17705,17710). | |
1624 | function('PL_predicate',17712,17715). | |
1625 | function('PL_predicate_info',17717,17724). | |
1626 | function('PL_open_query',17738,17801). | |
1627 | function('PL_next_solution',17803,17808). | |
1628 | function('PL_cut_query',17810,17814). | |
1629 | function('PL_close_query',17816,17819). | |
1630 | function('PL_call_predicate',17821,17825). | |
1631 | function('PL_call',17827,17833). | |
1632 | function('PL_open_foreign_frame',17844,17850). | |
1633 | function('PL_close_foreign_frame',17852,17856). | |
1634 | function('PL_discard_foreign_frame',17858,17861). | |
1635 | function('PL_rewind_foreign_frame',17863,17895). | |
1636 | function('PL_context',17903,17906). | |
1637 | function('PL_strip_module',17908,17928). | |
1638 | function('PL_module_name',17930,17932). | |
1639 | function('PL_new_module',17934,17936). | |
1640 | function('PL_raise_exception',18013,18040). | |
1641 | function('PL_throw',18042,18045). | |
1642 | function('PL_exception',18047,18059). | |
1643 | function('PL_clear_exception',18061,18065). | |
1644 | function('PL_signal',18087,18113). | |
1645 | function('PL_raise',18115,18119). | |
1646 | function('PL_handle_signals',18121,18132). | |
1647 | function('PL_get_signum_ex',18134,18140). | |
1648 | function('PL_compare',18148,18151). | |
1649 | function('PL_same_compound',18153,18156). | |
1650 | function('PL_record',18176,18181). | |
1651 | function('PL_recorded',18183,18189). | |
1652 | function('PL_erase',18191,18226). | |
1653 | function('PL_record_external',18228,18240). | |
1654 | function('PL_recorded_external',18242,18246). | |
1655 | function('PL_erase_external',18248,18251). | |
1656 | function('PL_get_file_name',18261,18294). | |
1657 | function('PL_get_file_nameW',18296,18302). | |
1658 | function('PL_warning',18312,18317). | |
1659 | function('PL_action',18322,18376). | |
1660 | function('PL_backtrace',18378,18400). | |
1661 | function('PL_query',18405,18439). | |
1662 | function('PL_register_foreign_in_module',18444,18517). | |
1663 | function('PL_register_foreign',18519,18522). | |
1664 | function('PL_register_extensions_in_module',18524,18560). | |
1665 | function('PL_register_extensions',18562,18565). | |
1666 | function('PL_dispatch_hook',18572,18582). | |
1667 | function('PL_abort_hook',18584,18593). | |
1668 | function('PL_abort_unhook',18595,18598). | |
1669 | function('PL_on_halt',18600,18608). | |
1670 | function('PL_exit_hook',18610,18613). | |
1671 | function('PL_agc_hook',18615,18652). | |
1672 | function('PL_initialise',18883,18939). | |
1673 | function('PL_is_initialised',18941,18947). | |
1674 | function('PL_install_readline',18949,18954). | |
1675 | function('PL_toplevel',18956,18959). | |
1676 | function('PL_cleanup',18961,18985). | |
1677 | function('PL_cleanup_fork',18987,19000). | |
1678 | function('PL_halt',19002,19006). | |
1679 | function('PL_malloc',19384,19389). | |
1680 | function('PL_realloc',19391,19395). | |
1681 | function('PL_free',19397,19400). | |
1682 | function('PL_malloc_atomic',19412,19413). | |
1683 | function('PL_malloc_uncollectable',19415,19416). | |
1684 | function('PL_malloc_atomic_uncollectable',19418,19424). | |
1685 | function('PL_malloc_stubborn',19426,19427). | |
1686 | function('PL_end_stubborn_change',19429,19432). | |
1687 | function('PL_license',26414,26417). | |
1689 | 1688 | |
1690 | 1689 |
813 | 813 | option_decl(M:_, _) :- |
814 | 814 | has_static_option_decl(M), !. |
815 | 815 | option_decl(M:Head, _) :- |
816 | compound(Head), | |
816 | 817 | arg(AP, Head, QA), |
817 | 818 | remove_qualifier(QA, A), |
818 | 819 | annotations(A, Annotations0), |
689 | 689 | % meta- and database-access predicates. |
690 | 690 | |
691 | 691 | colourise_goal_args(Goal, TB, Pos) :- |
692 | colourization_module(TB, Module), | |
693 | colourise_goal_args(Goal, Module, TB, Pos). | |
694 | ||
695 | colourization_module(TB, Module) :- | |
692 | 696 | ( colour_state_source_id(TB, SourceId), |
693 | 697 | xref_module(SourceId, Module) |
694 | 698 | -> true |
695 | 699 | ; Module = user |
696 | ), | |
697 | colourise_goal_args(Goal, Module, TB, Pos). | |
700 | ). | |
698 | 701 | |
699 | 702 | colourise_goal_args(Goal, M, TB, term_position(_,_,_,_,ArgPos)) :- |
700 | 703 | meta_args(Goal, TB, MetaArgs), !, |
1203 | 1206 | Arity is Arity0 + 2, |
1204 | 1207 | functor(Term, Name, Arity). |
1205 | 1208 | |
1206 | colourise_meta_declarations((Head,Tail), TB, | |
1209 | colourise_meta_declarations((Head,Tail), Extra, TB, | |
1207 | 1210 | term_position(_,_,_,_,[PH,PT])) :- !, |
1208 | colourise_meta_declaration(Head, TB, PH), | |
1209 | colourise_meta_declarations(Tail, TB, PT). | |
1210 | colourise_meta_declarations(Last, TB, Pos) :- | |
1211 | colourise_meta_declaration(Last, TB, Pos). | |
1212 | ||
1213 | colourise_meta_declaration(M:Head, TB, | |
1211 | colourise_meta_declaration(Head, Extra, TB, PH), | |
1212 | colourise_meta_declarations(Tail, Extra, TB, PT). | |
1213 | colourise_meta_declarations(Last, Extra, TB, Pos) :- | |
1214 | colourise_meta_declaration(Last, Extra, TB, Pos). | |
1215 | ||
1216 | colourise_meta_declaration(M:Head, Extra, TB, | |
1214 | 1217 | term_position(_,_,_,_, |
1215 | 1218 | [ MP, |
1216 | 1219 | term_position(_,_,FF,FT,ArgPos) |
1218 | 1221 | colour_item(module(M), TB, MP), |
1219 | 1222 | colour_item(goal(extern(M,Head)), TB, FF-FT), |
1220 | 1223 | Head =.. [_|Args], |
1221 | colourise_meta_args(Args, TB, ArgPos). | |
1222 | colourise_meta_declaration(Head, TB, term_position(_,_,FF,FT,ArgPos)) :- !, | |
1224 | colourise_meta_decls(Args, Extra, TB, ArgPos). | |
1225 | colourise_meta_declaration(Head, Extra, TB, term_position(_,_,FF,FT,ArgPos)) :- !, | |
1223 | 1226 | goal_classification(TB, Head, [], Class), |
1224 | 1227 | colour_item(goal(Class, Head), TB, FF-FT), |
1225 | 1228 | Head =.. [_|Args], |
1226 | colourise_meta_args(Args, TB, ArgPos). | |
1227 | colourise_meta_declaration([H|T], TB, list_position(LF,LT,[HP],TP)) :- | |
1229 | colourise_meta_decls(Args, Extra, TB, ArgPos). | |
1230 | colourise_meta_declaration([H|T], Extra, TB, list_position(LF,LT,[HP],TP)) :- | |
1228 | 1231 | colour_item(list, TB, LF-LT), |
1229 | colourise_meta_args([H,T], TB, [HP,TP]). | |
1230 | ||
1231 | colourise_meta_args([], _, []). | |
1232 | colourise_meta_args([Arg|ArgT], TB, [PosH|PosT]) :- | |
1233 | colourise_meta_arg(Arg, TB, PosH), | |
1234 | colourise_meta_args(ArgT, TB, PosT). | |
1235 | ||
1236 | colourise_meta_arg(Arg, TB, Pos) :- | |
1237 | valid_meta_arg(Arg), !, | |
1232 | colourise_meta_decls([H,T], Extra, TB, [HP,TP]). | |
1233 | ||
1234 | colourise_meta_decls([], _, _, []). | |
1235 | colourise_meta_decls([Arg|ArgT], Extra, TB, [PosH|PosT]) :- | |
1236 | colourise_meta_decl(Arg, Extra, TB, PosH), | |
1237 | colourise_meta_decls(ArgT, Extra, TB, PosT). | |
1238 | ||
1239 | colourise_meta_decl(Arg, Extra, TB, Pos) :- | |
1240 | nonvar(Arg), | |
1241 | ( valid_meta_decl(Arg) | |
1242 | -> true | |
1243 | ; memberchk(Arg, Extra) | |
1244 | ), | |
1238 | 1245 | colour_item(meta(Arg), TB, Pos). |
1239 | colourise_meta_arg(_, TB, Pos) :- | |
1246 | colourise_meta_decl(_, _, TB, Pos) :- | |
1240 | 1247 | colour_item(error, TB, Pos). |
1241 | 1248 | |
1242 | valid_meta_arg(Var) :- | |
1243 | var(Var), !, fail. | |
1244 | valid_meta_arg(:). | |
1245 | valid_meta_arg(*). | |
1246 | valid_meta_arg(//). | |
1247 | valid_meta_arg(^). | |
1248 | valid_meta_arg(?). | |
1249 | valid_meta_arg(+). | |
1250 | valid_meta_arg(-). | |
1251 | valid_meta_arg(I) :- integer(I), between(0,9,I). | |
1249 | valid_meta_decl(:). | |
1250 | valid_meta_decl(*). | |
1251 | valid_meta_decl(//). | |
1252 | valid_meta_decl(^). | |
1253 | valid_meta_decl(?). | |
1254 | valid_meta_decl(+). | |
1255 | valid_meta_decl(-). | |
1256 | valid_meta_decl(I) :- integer(I), between(0,9,I). | |
1252 | 1257 | |
1253 | 1258 | %% colourise_op_declaration(Op, TB, Pos) is det. |
1254 | 1259 | |
1437 | 1442 | goal_colours(include(_), built_in-[file]). |
1438 | 1443 | goal_colours(ensure_loaded(_), built_in-[file]). |
1439 | 1444 | goal_colours(load_files(_), built_in-[file]). |
1440 | goal_colours(load_files(_,_), built_in-[file,classify]). | |
1445 | goal_colours(load_files(_,_), built_in-[file,options]). | |
1441 | 1446 | goal_colours(setof(_,_,_), built_in-[classify,setof,classify]). |
1442 | 1447 | goal_colours(bagof(_,_,_), built_in-[classify,setof,classify]). |
1443 | 1448 | goal_colours(predicate_options(_,_,_), built_in-[predicate,classify,classify]). |
1788 | 1793 | colourise_declaration(Term, TB, Pos). |
1789 | 1794 | % head(Arg, ...) |
1790 | 1795 | specified_item(meta_declarations, Term, TB, Pos) :- !, |
1791 | colourise_meta_declarations(Term, TB, Pos). | |
1796 | colourise_meta_declarations(Term, [], TB, Pos). | |
1797 | specified_item(meta_declarations(Extra), Term, TB, Pos) :- !, | |
1798 | colourise_meta_declarations(Term, Extra, TB, Pos). | |
1792 | 1799 | % set_prolog_flag(Name, _) |
1793 | 1800 | specified_item(prolog_flag_name, Term, TB, Pos) :- !, |
1794 | 1801 | colourise_prolog_flag_name(Term, TB, Pos). |
1868 | 1875 | specified_arglist([], _, _, _, _). |
1869 | 1876 | specified_arglist(_, _, _, _, []) :- !. % Excess specification args |
1870 | 1877 | specified_arglist([S0|ST], N, T, TB, [P0|PT]) :- |
1871 | arg(N, T, Term), | |
1872 | specified_item(S0, Term, TB, P0), | |
1878 | ( S0 == options, | |
1879 | colourization_module(TB, Module), | |
1880 | colourise_option_arg(T, Module, N, TB, P0) | |
1881 | -> true | |
1882 | ; arg(N, T, Term), | |
1883 | specified_item(S0, Term, TB, P0) | |
1884 | ), | |
1873 | 1885 | NN is N + 1, |
1874 | 1886 | specified_arglist(ST, NN, T, TB, PT). |
1875 | 1887 |
149 | 149 | :- if(current_predicate(rl_read_history/1)). |
150 | 150 | :- dynamic |
151 | 151 | history_loaded/1. |
152 | prolog_history(enable) :- | |
153 | history_loaded(_), !. | |
154 | prolog_history(enable) :- !, | |
155 | dir_history_file('.', File), | |
152 | ||
153 | load_dir_history(File) :- | |
156 | 154 | ( exists_file(File) |
157 | 155 | -> rl_read_history(File), |
158 | 156 | assertz(history_loaded(File)) |
159 | 157 | ; true |
160 | ), | |
158 | ). | |
159 | ||
160 | prolog_history(enable) :- | |
161 | history_loaded(_), !. | |
162 | prolog_history(enable) :- | |
163 | catch(dir_history_file('.', File), E, | |
164 | (print_message(warning, E),fail)), !, | |
165 | catch(load_dir_history(File), E, | |
166 | print_message(warning, E)), | |
161 | 167 | at_halt(write_history(File)), |
162 | 168 | set_prolog_flag(save_history, true). |
163 | 169 | :- endif. |
1013 | 1013 | xref_meta(if(G), [G]). |
1014 | 1014 | xref_meta(elif(G), [G]). |
1015 | 1015 | xref_meta(meta_options(G,_,_), [G+1]). |
1016 | xref_meta(on_signal(_,_,H), [H+1]) :- H \== default. | |
1016 | 1017 | |
1017 | 1018 | % XPCE meta-predicates |
1018 | 1019 | xref_meta(pce_global(_, new(_)), _) :- !, fail. |
334 | 334 | define_toplevel_goal(Options), |
335 | 335 | option(autoload(true), Options, true), !, |
336 | 336 | autoload(Options). |
337 | save_autoload(_). | |
337 | 338 | |
338 | 339 | |
339 | 340 | /******************************* |
377 | 378 | fail |
378 | 379 | ; true |
379 | 380 | ), |
380 | save_attributes(P), | |
381 | \+ predicate_property(P, (volatile)), | |
382 | ( nth_clause(P, _, Ref), | |
383 | feedback('.', []), | |
384 | '$qlf_assert_clause'(Ref, SaveClass), | |
385 | fail | |
386 | ; true | |
387 | ). | |
388 | ||
381 | ( no_save(P) | |
382 | -> true | |
383 | ; save_attributes(P), | |
384 | \+ predicate_property(P, (volatile)), | |
385 | ( nth_clause(P, _, Ref), | |
386 | feedback('.', []), | |
387 | '$qlf_assert_clause'(Ref, SaveClass), | |
388 | fail | |
389 | ; true | |
390 | ) | |
391 | ). | |
392 | ||
393 | no_save(P) :- | |
394 | predicate_property(P, volatile), | |
395 | \+ predicate_property(P, dynamic), | |
396 | \+ predicate_property(P, multifile). | |
389 | 397 | |
390 | 398 | pred_attrib(meta_predicate(Term), Head, meta_predicate(M:Term)) :- !, |
391 | 399 | strip_module(Head, M, _). |
235 | 235 | % quasi_quotation(Syntax, Quotation, VarNames, Result) |
236 | 236 | |
237 | 237 | :- public |
238 | system:'$parse_quasi_quotes'/2. | |
238 | system:'$parse_quasi_quotations'/2. | |
239 | 239 | |
240 | 240 | system:'$parse_quasi_quotations'([], _). |
241 | 241 | system:'$parse_quasi_quotations'([H|T], M) :- |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 2.20</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 2.20</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
854 | 854 | <div class="toc-h4"><a class="sec" href="clpfd.html#sec:A.7.5"><span class="sec-nr">A.7.5</span> <span class="sec-title">Search</span></a></div> |
855 | 855 | <div class="toc-h4"><a class="sec" href="clpfd.html#sec:A.7.6"><span class="sec-nr">A.7.6</span> <span class="sec-title">Declarative |
856 | 856 | integer arithmetic</span></a></div> |
857 | <div class="toc-h4"><a class="sec" href="clpfd.html#sec:A.7.7"><span class="sec-nr">A.7.7</span> <span class="sec-title">Advanced | |
858 | topics</span></a></div> | |
859 | 857 | <div class="toc-h2"><a class="sec" href="clpqr.html"><span class="sec-nr">A.8</span> <span class="sec-title">library(clpqr): |
860 | 858 | Constraint Logic Programming over Rationals and Reals</span></a></div> |
861 | 859 | <div class="toc-h3"><a class="sec" href="clpqr.html#sec:A.8.1"><span class="sec-nr">A.8.1</span> <span class="sec-title">Solver |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.12</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.12</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.42</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.42</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1623 | 1623 | <a class="idx" href="flags.html#idx:open3:91">2.11</a> <a class="idx" href="IO.html#idx:open3:810">4.16</a> <a class="idx" href="IO.html#idx:open3:829">4.16.2</a></dd> |
1624 | 1624 | <dt><a class="idx" href="IO.html#open/4">open/4</a></dt> |
1625 | 1625 | <dd> |
1626 | <a class="idx" href="widechars.html#idx:open4:233">2.18.1</a> <a class="idx" href="widechars.html#idx:open4:239">2.18.1.1</a> <a class="idx" href="widechars.html#idx:open4:241">2.18.1.1</a> <a class="idx" href="chars.html#idx:open4:307">4.2</a> <a class="idx" href="IO.html#idx:open4:843">4.16.2</a> <a class="idx" href="IO.html#idx:open4:844">4.16.2</a> <a class="idx" href="IO.html#idx:open4:847">4.16.2</a> <a class="idx" href="IO.html#idx:open4:848">4.16.2</a> <a class="idx" href="IO.html#idx:open4:865">4.16.2</a> <a class="idx" href="IO.html#idx:open4:876">4.16.2</a> <a class="idx" href="IO.html#idx:open4:886">4.16.2</a> <a class="idx" href="chario.html#idx:open4:957">4.18</a> <a class="idx" href="locale.html#idx:open4:1124">4.22</a> <a class="idx" href="readutil.html#idx:open4:1829">A.25</a> <a class="idx" href="readutil.html#idx:open4:1833">A.25</a></dd> | |
1626 | <a class="idx" href="widechars.html#idx:open4:233">2.18.1</a> <a class="idx" href="widechars.html#idx:open4:239">2.18.1.1</a> <a class="idx" href="widechars.html#idx:open4:241">2.18.1.1</a> <a class="idx" href="chars.html#idx:open4:307">4.2</a> <a class="idx" href="IO.html#idx:open4:835">4.16.2</a> <a class="idx" href="IO.html#idx:open4:843">4.16.2</a> <a class="idx" href="IO.html#idx:open4:844">4.16.2</a> <a class="idx" href="IO.html#idx:open4:847">4.16.2</a> <a class="idx" href="IO.html#idx:open4:848">4.16.2</a> <a class="idx" href="IO.html#idx:open4:865">4.16.2</a> <a class="idx" href="IO.html#idx:open4:876">4.16.2</a> <a class="idx" href="IO.html#idx:open4:886">4.16.2</a> <a class="idx" href="chario.html#idx:open4:957">4.18</a> <a class="idx" href="locale.html#idx:open4:1124">4.22</a> <a class="idx" href="readutil.html#idx:open4:1829">A.25</a> <a class="idx" href="readutil.html#idx:open4:1833">A.25</a></dd> | |
1627 | 1627 | <dt><a class="idx" href="charsio.html#open_chars_stream/2">open_chars_stream/2</a></dt> |
1628 | 1628 | <dt><a class="idx" href="DDE.html#open_dde_conversation/3">open_dde_conversation/3</a></dt> |
1629 | 1629 | <dt><a class="idx" href="IO.html#open_null_stream/1">open_null_stream/1</a></dt> |
1788 | 1788 | <a class="idx" href="glossary.html#idx:priority:1977">D</a></dd> |
1789 | 1789 | <dt>process_create/3</dt> |
1790 | 1790 | <dd> |
1791 | <a class="idx" href="system.html#idx:processcreate3:1253">4.34</a> <a class="idx" href="system.html#idx:processcreate3:1273">4.34.1</a></dd> | |
1791 | <a class="idx" href="IO.html#idx:processcreate3:834">4.16.2</a> <a class="idx" href="system.html#idx:processcreate3:1253">4.34</a> <a class="idx" href="system.html#idx:processcreate3:1273">4.34.1</a></dd> | |
1792 | 1792 | <dt>profile file</dt> |
1793 | 1793 | <dd> |
1794 | 1794 | <a class="idx" href="initfile.html#idx:profilefile:9">2.2</a></dd> |
2116 | 2116 | <dt><a class="idx" href="apply.html#scanl/7">scanl/7</a></dt> |
2117 | 2117 | <dt><a class="idx" href="IO.html#see/1">see/1</a></dt> |
2118 | 2118 | <dd> |
2119 | <a class="idx" href="IO.html#idx:see1:813">4.16</a> <a class="idx" href="IO.html#idx:see1:819">4.16.1</a> <a class="idx" href="IO.html#idx:see1:834">4.16.2</a> <a class="idx" href="IO.html#idx:see1:895">4.16.3</a> <a class="idx" href="IO.html#idx:see1:902">4.16.3</a> <a class="idx" href="IO.html#idx:see1:904">4.16.3</a></dd> | |
2119 | <a class="idx" href="IO.html#idx:see1:813">4.16</a> <a class="idx" href="IO.html#idx:see1:819">4.16.1</a> <a class="idx" href="IO.html#idx:see1:895">4.16.3</a> <a class="idx" href="IO.html#idx:see1:902">4.16.3</a> <a class="idx" href="IO.html#idx:see1:904">4.16.3</a></dd> | |
2120 | 2120 | <dt><a class="idx" href="IO.html#seeing/1">seeing/1</a></dt> |
2121 | 2121 | <dd> |
2122 | 2122 | <a class="idx" href="IO.html#idx:seeing1:897">4.16.3</a> <a class="idx" href="IO.html#idx:seeing1:900">4.16.3</a> <a class="idx" href="files.html#idx:seeing1:1326">4.35</a></dd> |
2337 | 2337 | <a class="idx" href="thutil.html#idx:tdebug1:1657">8.5.1</a> <a class="idx" href="thutil.html#idx:tdebug1:1659">8.5.1</a></dd> |
2338 | 2338 | <dt><a class="idx" href="IO.html#tell/1">tell/1</a></dt> |
2339 | 2339 | <dd> |
2340 | <a class="idx" href="IO.html#idx:tell1:812">4.16</a> <a class="idx" href="IO.html#idx:tell1:820">4.16.1</a> <a class="idx" href="IO.html#idx:tell1:835">4.16.2</a> <a class="idx" href="IO.html#idx:tell1:893">4.16.3</a> <a class="idx" href="IO.html#idx:tell1:898">4.16.3</a> <a class="idx" href="IO.html#idx:tell1:901">4.16.3</a> <a class="idx" href="IO.html#idx:tell1:903">4.16.3</a> <a class="idx" href="IO.html#idx:tell1:907">4.16.3</a></dd> | |
2340 | <a class="idx" href="IO.html#idx:tell1:812">4.16</a> <a class="idx" href="IO.html#idx:tell1:820">4.16.1</a> <a class="idx" href="IO.html#idx:tell1:893">4.16.3</a> <a class="idx" href="IO.html#idx:tell1:898">4.16.3</a> <a class="idx" href="IO.html#idx:tell1:901">4.16.3</a> <a class="idx" href="IO.html#idx:tell1:903">4.16.3</a> <a class="idx" href="IO.html#idx:tell1:907">4.16.3</a></dd> | |
2341 | 2341 | <dt><a class="idx" href="IO.html#telling/1">telling/1</a></dt> |
2342 | 2342 | <dd> |
2343 | 2343 | <a class="idx" href="IO.html#idx:telling1:896">4.16.3</a> <a class="idx" href="IO.html#idx:telling1:899">4.16.3</a> <a class="idx" href="files.html#idx:telling1:1325">4.35</a></dd> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.16</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.16</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
340 | 340 | <dt class="pubdef"><span class="pred-tag">[ISO]</span><a id="open/4"><strong>open</strong>(<var>+SrcDest, |
341 | 341 | +Mode, -Stream, +Options</var>)</a></dt> |
342 | 342 | <dd class="defbody"> |
343 | ISO compliant predicate to open a stream. <var>SrcDest</var> is either | |
344 | an atom specifying a file, or a term `<code>pipe(<var>Command</var>)</code>', | |
345 | like <a id="idx:see1:834"></a><a class="pred" href="IO.html#see/1">see/1</a> | |
346 | and <a id="idx:tell1:835"></a><a class="pred" href="IO.html#tell/1">tell/1</a>. <var>Mode</var> | |
347 | is one of <code>read</code>, <code>write</code>, | |
348 | <code>append</code> or <code>update</code>. Mode <code>append</code> | |
349 | opens the file for writing, positioning the file pointer at the end. | |
350 | Mode <code>update</code> opens the file for writing, positioning the | |
351 | file pointer at the beginning of the file without truncating the file. <var>Stream</var> | |
352 | is either a variable, in which case it is bound to an integer | |
353 | identifying the stream, or an atom, in which case this atom will be the | |
354 | stream identifier.<sup class="fn">61<span class="fn-text">New code | |
355 | should use the <code>alias(Alias)</code> option for compatibility with | |
356 | the ISO standard.</span></sup> The <var>Options</var> list can contain | |
357 | the following options: | |
343 | True when <var>SrcDest</var> can be opened in <var>Mode</var> and <var>Stream</var> | |
344 | is an I/O stream to/from the object. <var>SrcDest</var> is normally the | |
345 | name of a file, represented as an atom or string. <var>Mode</var> is one | |
346 | of | |
347 | <code>read</code>, <code>write</code>, <code>append</code> or <code>update</code>. | |
348 | Mode | |
349 | <code>append</code> opens the file for writing, positioning the file | |
350 | pointer at the end. Mode <code>update</code> opens the file for writing, | |
351 | positioning the file pointer at the beginning of the file without | |
352 | truncating the file. <var>Stream</var> is either a variable, in which | |
353 | case it is bound to an integer identifying the stream, or an atom, in | |
354 | which case this atom will be the stream identifier.<sup class="fn">61<span class="fn-text">New | |
355 | code should use the <code>alias(Alias)</code> option for compatibility | |
356 | with the ISO standard.</span></sup> | |
357 | ||
358 | <p>SWI-Prolog also allows <var>SrcDest</var> to be a term <code>pipe(Command)</code>. | |
359 | In this form, <var>Command</var> is started as a child process and if | |
360 | <var>Mode</var> is <code>write</code>, output written to <var>Stream</var> | |
361 | is sent to the standard input of <var>Command</var>. Viso versa, if <var>Mode</var> | |
362 | is | |
363 | <code>read</code>, data written by <var>Command</var> to the standard | |
364 | output may be read from <var>Stream</var>. On Unix systems, <var>Command</var> | |
365 | is handed to popen() which hands it to the Unix shell. On Windows, <var>Command</var> | |
366 | is executed directly. See also <a id="idx:processcreate3:834"></a><span class="pred-ext">process_create/3</span> | |
367 | from <code>library(process)</code>. | |
368 | ||
369 | <p>The following <var>Options</var> are recognised by <a id="idx:open4:835"></a><a class="pred" href="IO.html#open/4">open/4</a>: | |
358 | 370 | |
359 | 371 | <dl class="latex"> |
360 | 372 | <dt><strong>type</strong>(<var>Type</var>)</dt> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 7.2</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 7.2</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 1.6</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 1.6</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section A.1</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section A.1</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.30</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.30</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 5.11</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 5.11</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section B.2</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section B.2</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section A.2</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section A.2</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.27</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.27</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section A.3</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section A.3</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 6.1</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 6.1</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 2.13</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 2.13</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section B.5</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section B.5</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section A.4</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section A.4</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.29</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.29</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.26</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.26</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.18</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.18</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.2</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.2</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section A.5</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section A.5</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.23</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.23</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section A.6</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section A.6</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 7.1</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 7.1</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section E.1</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section E.1</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section A.7</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section A.7</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
244 | 244 | </dd> |
245 | 245 | </dl> |
246 | 246 | |
247 | <p> | |
248 | ||
249 | <h4><a id="sec:A.7.1"><span class="sec-nr">A.7.1</span> <span class="sec-title">Introduction</span></a></h4> | |
247 | <p><h4 id="sec:clpfd-intro"><a id="sec:A.7.1"><span class="sec-nr">A.7.1</span> <span class="sec-title">Introduction</span></a></h4> | |
248 | ||
249 | <p><a id="sec:clpfd-intro"></a> | |
250 | 250 | |
251 | 251 | <p>Constraint programming is a declarative formalism that lets you |
252 | 252 | describe conditions a solution must satisfy. This library provides |
275 | 275 | } |
276 | 276 | </pre> |
277 | 277 | |
278 | <p> | |
279 | ||
280 | <h4><a id="sec:A.7.2"><span class="sec-nr">A.7.2</span> <span class="sec-title">Arithmetic | |
278 | <p><h4 id="sec:cplfd-arith-constraints"><a id="sec:A.7.2"><span class="sec-nr">A.7.2</span> <span class="sec-title">Arithmetic | |
281 | 279 | constraints</span></a></h4> |
280 | ||
281 | <p><a id="sec:cplfd-arith-constraints"></a> | |
282 | 282 | |
283 | 283 | <p>A finite domain <i>arithmetic expression</i> is one of: |
284 | 284 | <blockquote> |
318 | 318 | </table> |
319 | 319 | </blockquote> |
320 | 320 | |
321 | <p> | |
322 | ||
323 | <h4><a id="sec:A.7.3"><span class="sec-nr">A.7.3</span> <span class="sec-title">Reification</span></a></h4> | |
321 | <p><h4 id="sec:clpfd-reification"><a id="sec:A.7.3"><span class="sec-nr">A.7.3</span> <span class="sec-title">Reification</span></a></h4> | |
322 | ||
323 | <p><a id="sec:clpfd-reification"></a> | |
324 | 324 | |
325 | 325 | <p>The constraints <a class="pred" href="clpfd.html#in/2">in/2</a>, <a class="pred" href="clpfd.html##=/2">#=/2</a>, <a class="pred" href="clpfd.html##\=/2">#\=/2</a>, <a class="pred" href="clpfd.html##</2">#</2</a>, <a class="pred" href="clpfd.html##>/2">#>/2</a>, <a class="pred" href="clpfd.html##=</2">#=</2</a>, |
326 | 326 | and <a class="pred" href="clpfd.html##>=/2">#>=/2</a> can be |
341 | 341 | |
342 | 342 | <p>The constraints of this table are reifiable as well. |
343 | 343 | |
344 | <p> | |
345 | ||
346 | <h4><a id="sec:A.7.4"><span class="sec-nr">A.7.4</span> <span class="sec-title">Examples</span></a></h4> | |
344 | <p><h4 id="sec:clpfd-examples"><a id="sec:A.7.4"><span class="sec-nr">A.7.4</span> <span class="sec-title">Examples</span></a></h4> | |
345 | ||
346 | <p><a id="sec:clpfd-examples"></a> | |
347 | 347 | |
348 | 348 | <p>Here is an example session with a few queries and their answers: |
349 | 349 | |
384 | 384 | declaratively equivalent to the original query, and in many cases the |
385 | 385 | constraint solver has deduced additional domain restrictions. |
386 | 386 | |
387 | <p> | |
388 | ||
389 | <h4><a id="sec:A.7.5"><span class="sec-nr">A.7.5</span> <span class="sec-title">Search</span></a></h4> | |
387 | <p><h4 id="sec:clpfd-search"><a id="sec:A.7.5"><span class="sec-nr">A.7.5</span> <span class="sec-title">Search</span></a></h4> | |
388 | ||
389 | <p><a id="sec:clpfd-search"></a> | |
390 | 390 | |
391 | 391 | <p>A common usage of this library is to first post the desired |
392 | 392 | constraints among the variables of a model, and then to use enumeration |
446 | 446 | general though, it is necessary to label all variables to obtain ground |
447 | 447 | solutions. |
448 | 448 | |
449 | <p> | |
450 | ||
451 | <h4><a id="sec:A.7.6"><span class="sec-nr">A.7.6</span> <span class="sec-title">Declarative | |
449 | <p><h4 id="sec:clpfd-integer-arith"><a id="sec:A.7.6"><span class="sec-nr">A.7.6</span> <span class="sec-title">Declarative | |
452 | 450 | integer arithmetic</span></a></h4> |
451 | ||
452 | <p><a id="sec:clpfd-integer-arith"></a> | |
453 | 453 | |
454 | 454 | <p>You can also use CLP(FD) constraints as a more declarative |
455 | 455 | alternative for ordinary integer arithmetic with <a class="pred" href="arith.html#is/2">is/2</a>, <a class="pred" href="arith.html#>/2">>/2</a> |
485 | 485 | Otherwise, the query <code>n_factorial(N, 0)</code> is the only |
486 | 486 | non-terminating case of this kind. |
487 | 487 | |
488 | <p> | |
489 | ||
490 | <h4><a id="sec:A.7.7"><span class="sec-nr">A.7.7</span> <span class="sec-title">Advanced | |
491 | topics</span></a></h4> | |
488 | <p><var><</var>### Advanced topics {#clpfd-advanced-topics} | |
492 | 489 | |
493 | 490 | <p>This library uses <a class="pred" href="consulting.html#goal_expansion/2">goal_expansion/2</a> |
494 | 491 | to rewrite constraints at compilation time. The expansion's aim is to |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section A.8</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section A.8</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 2.4</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 2.4</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.7</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.7</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 2.10</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 2.10</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.3</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.3</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section E.2</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section E.2</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.8</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.8</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 6.2</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 6.2</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section A.9</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section A.9</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 5.13</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 5.13</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 2.16</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 2.16</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.13</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.13</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section A.10</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section A.10</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.38</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.38</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 7.4</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 7.4</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 2.9</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 2.9</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 5.2</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 5.2</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 5.12</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 5.12</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.14</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.14</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.4</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.4</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 3.3</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 3.3</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 7.8</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 7.8</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.15</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.15</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 7.5</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 7.5</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section B.6</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section B.6</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.10</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.10</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section B.7</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section B.7</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.35</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.35</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
520 | 520 | </pre> |
521 | 521 | |
522 | 522 | <p>Temporary files created using this call are removed if the Prolog |
523 | process terminates. Calling <a id="idx:deletefile1:1322"></a><a class="pred" href="files.html#delete_file/1">delete_file/1</a> | |
524 | using <var>FileName</var> removes the file and removes the entry from | |
525 | the administration of files-to-be-deleted.</dd> | |
523 | process terminates <em>gracefully</em>. Calling <a id="idx:deletefile1:1322"></a><a class="pred" href="files.html#delete_file/1">delete_file/1</a> | |
524 | using | |
525 | <var>FileName</var> removes the file and removes the entry from the | |
526 | administration of files-to-be-deleted.</dd> | |
526 | 527 | <dt class="pubdef"><a id="make_directory/1"><strong>make_directory</strong>(<var>+Directory</var>)</a></dt> |
527 | 528 | <dd class="defbody"> |
528 | 529 | Create a new directory (folder) on the filesystem. Raises an exception |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 10.4</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 10.4</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 9.6</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 9.6</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 2.11</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 2.11</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.31</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.31</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 9.4</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 9.4</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 9.2</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 9.2</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 9.8</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 9.8</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 9.1</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 9.1</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 8.6</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 8.6</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 9.3</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 9.3</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 9.7</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 9.7</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.32</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.32</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section F.3</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section F.3</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 2.14</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 2.14</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 2.5</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 2.5</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section A.11</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section A.11</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 7.7</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 7.7</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 3.5</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 3.5</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 6.3</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 6.3</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 2.6</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 2.6</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 2.7</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 2.7</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 2.12</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 2.12</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 3.8</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 3.8</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 3.9</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 3.9</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 1.5</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 1.5</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 5.3</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 5.3</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 5.9</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 5.9</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual</title><link rel="contents" href="Contents.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual</title><link rel="contents" href="Contents.html"> | |
5 | 5 | <link rel="index" href="DocIndex.html"> |
6 | 6 | <link rel="summary" href="summary.html"> |
7 | 7 | <link rel="next" href="Contents.html"> |
228 | 228 | <a class="nav" href="summary.html"><img src="info.gif" alt="Summary"></a> |
229 | 229 | <a class="nav" href="Contents.html"><img src="next.gif" alt="Next"></a> |
230 | 230 | </div> |
231 | <div class="title">SWI-Prolog 7.1.13 Reference Manual</div> | |
231 | <div class="title">SWI-Prolog 7.1.16 Reference Manual</div> | |
232 | 232 | <div class="author"><a class="url" href="mailto:J.Wielemaker@vu.nl">Jan |
233 | 233 | Wielemaker</a> <br> |
234 | 234 | Department of Computer Science <br> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 2.2</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 2.2</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 2.3</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 2.3</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section B.8</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section B.8</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 2.17</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 2.17</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
296 | 296 | <div class="toc-h4"><a class="sec" href="clpfd.html#sec:A.7.5"><span class="sec-nr">A.7.5</span> <span class="sec-title">Search</span></a></div> |
297 | 297 | <div class="toc-h4"><a class="sec" href="clpfd.html#sec:A.7.6"><span class="sec-nr">A.7.6</span> <span class="sec-title">Declarative |
298 | 298 | integer arithmetic</span></a></div> |
299 | <div class="toc-h4"><a class="sec" href="clpfd.html#sec:A.7.7"><span class="sec-nr">A.7.7</span> <span class="sec-title">Advanced | |
300 | topics</span></a></div> | |
301 | 299 | <div class="toc-h2"><a class="sec" href="clpqr.html"><span class="sec-nr">A.8</span> <span class="sec-title">library(clpqr): |
302 | 300 | Constraint Logic Programming over Rationals and Reals</span></a></div> |
303 | 301 | <div class="toc-h3"><a class="sec" href="clpqr.html#sec:A.8.1"><span class="sec-nr">A.8.1</span> <span class="sec-title">Solver |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section F.2</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section F.2</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
475 | 475 | true when List1 and List2 are lists with the same number of elements.</td></tr> |
476 | 476 | <tr><td><a class="pred" href="lists.html#select/3">select/3</a></td><td>Is |
477 | 477 | true when List1, with Elem removed, results in List2.</td></tr> |
478 | <tr><td><a class="pred" href="lists.html#select/4">select/4</a></td><td>True | |
479 | if XList is unifiable with YList apart a single element at the same | |
480 | position that is unified with X in XList and with Y in YList.</td></tr> | |
478 | <tr><td><a class="pred" href="lists.html#select/4">select/4</a></td><td>Select | |
479 | from two lists at the same positon.</td></tr> | |
481 | 480 | <tr><td><a class="pred" href="lists.html#selectchk/3">selectchk/3</a></td><td>Semi-deterministic |
482 | 481 | removal of first element in List that unifies with Elem.</td></tr> |
483 | 482 | <tr><td><a class="pred" href="lists.html#selectchk/4">selectchk/4</a></td><td>Semi-deterministic |
578 | 577 | and difference between two ordered sets.</td></tr> |
579 | 578 | <tr><td><a class="pred" href="ordsets.html#ord_memberchk/2">ord_memberchk/2</a></td><td>True |
580 | 579 | if Element is a member of OrdSet, compared using ==.</td></tr> |
581 | <tr><td><a class="pred" href="ordsets.html#ord_selectchk/3">ord_selectchk/3</a></td><td>Is | |
582 | true when select(Item, Set1, Set2) and Set1, Set2 are both sorted lists | |
583 | without duplicates.</td></tr> | |
580 | <tr><td><a class="pred" href="ordsets.html#ord_selectchk/3">ord_selectchk/3</a></td><td>Selectchk/3, | |
581 | specialised for ordered sets.</td></tr> | |
584 | 582 | <tr><td><a class="pred" href="ordsets.html#ord_seteq/2">ord_seteq/2</a></td><td>True |
585 | 583 | if Set1 and Set2 have the same elements.</td></tr> |
586 | 584 | <tr><td><a class="pred" href="ordsets.html#ord_subset/2">ord_subset/2</a></td><td>Is |
714 | 712 | a lazy list representing the character codes in Stream.</td></tr> |
715 | 713 | <tr><td><a class="pred" href="pio.html#lazy_list_character_count/3">lazy_list_character_count/3</a></td><td>True |
716 | 714 | when CharCount is the current character count in the Lazy list.</td></tr> |
717 | <tr><td><a class="pred" href="pio.html#lazy_list_location/3">lazy_list_location/3</a></td><td>True | |
718 | when Location is an (error) location term that represents the current | |
719 | location in the DCG list.</td></tr> | |
715 | <tr><td><a class="pred" href="pio.html#lazy_list_location/3">lazy_list_location/3</a></td><td>Determine | |
716 | current (error) location in a lazy list.</td></tr> | |
720 | 717 | <tr><td><a class="pred" href="pio.html#syntax_error/3">syntax_error/3</a></td><td>Throw |
721 | 718 | the syntax error Error at the current location of the input.</td></tr> |
722 | 719 | </table> |
1020 | 1017 | |
1021 | 1018 | <a id="sec:summary-lib-thread_pool"></a> |
1022 | 1019 | <table> |
1023 | <tr><td><a class="pred" href="threadpool.html#create_pool/1">create_pool/1</a></td><td>This | |
1024 | hook is called if thread_create_in_pool/4 discovers that the thread pool | |
1025 | does not exist.</td></tr> | |
1020 | <tr><td><a class="pred" href="threadpool.html#create_pool/1">create_pool/1</a></td><td>Hook | |
1021 | to create a thread pool lazily.</td></tr> | |
1026 | 1022 | <tr><td><a class="pred" href="threadpool.html#current_thread_pool/1">current_thread_pool/1</a></td><td>True |
1027 | 1023 | if Name refers to a defined thread pool.</td></tr> |
1028 | 1024 | <tr><td><a class="pred" href="threadpool.html#thread_create_in_pool/4">thread_create_in_pool/4</a></td><td>Create |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 2.19</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 2.19</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.5</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.5</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section A.12</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section A.12</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
307 | 307 | <dt class="pubdef"><span class="pred-tag">[nondet]</span><a id="select/4"><strong>select</strong>(<var>?X, |
308 | 308 | ?XList, ?Y, ?YList</var>)</a></dt> |
309 | 309 | <dd class="defbody"> |
310 | True if <var>XList</var> is unifiable with <var>YList</var> apart a | |
311 | single element at the same position that is unified with <var>X</var> in <var>XList</var> | |
312 | and with <var>Y</var> in | |
313 | <var>YList</var>. A typical use for this predicate is to <i>replace</i> | |
310 | Select from two lists at the same positon. True if <var>XList</var> is | |
311 | unifiable with <var>YList</var> apart a single element at the same | |
312 | position that is unified with <var>X</var> in <var>XList</var> and with <var>Y</var> | |
313 | in <var>YList</var>. A typical use for this predicate is to <i>replace</i> | |
314 | 314 | an element, as shown in the example below. All possible substitutions |
315 | 315 | are performed on backtracking. |
316 | 316 |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section B.9</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section B.9</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.22</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.22</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.21</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.21</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 5.14</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 5.14</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section B.1</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section B.1</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.20</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.20</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.41</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.41</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.9</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.9</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 5.4</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 5.4</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.28</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.28</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.43</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.43</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 5.15</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 5.15</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 5.8</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 5.8</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 8.7</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 8.7</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 5.6</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 5.6</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 3.6</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 3.6</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section A.13</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section A.13</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.25</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.25</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section F.4</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section F.4</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section A.15</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section A.15</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section A.16</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section A.16</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
504 | 504 | an option in a cluttered interface amounts to commenting out the flags. |
505 | 505 | |
506 | 506 | <p><a class="pred" href="optparse.html#opt_parse/5">opt_parse/5</a> |
507 | allows more control through an additional argument list. For instance, <code>opt_parse(ExampleOptsSpec, ExampleArgs, Opts, PositionalArgs, [output_functor(appl_config)])</code> | |
508 | would instead return | |
507 | allows more control through an additional argument list as shown in the | |
508 | example below. | |
509 | 509 | |
510 | 510 | <pre class="code"> |
511 | ?- opt_parse(ExampleOptsSpec, ExampleArgs, Opts, PositionalArgs, | |
512 | [ output_functor(appl_config) | |
513 | ]). | |
514 | ||
511 | 515 | Opts = [ appl_config(verbose, 2), |
512 | 516 | , appl_config(label, 'REPORT') |
513 | 517 | ... |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section A.17</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section A.17</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
367 | 367 | <dt class="pubdef"><span class="pred-tag">[semidet]</span><a id="ord_selectchk/3"><strong>ord_selectchk</strong>(<var>+Item, |
368 | 368 | ?Set1, ?Set2</var>)</a></dt> |
369 | 369 | <dd class="defbody"> |
370 | Is true when <code>select(Item, Set1, Set2)</code> and <var>Set1</var>, <var>Set2</var> | |
370 | Selectchk/3, specialised for ordered sets. Is true when | |
371 | <code>select(Item, Set1, Set2)</code> and <var>Set1</var>, <var>Set2</var> | |
371 | 372 | are both sorted lists without duplicates. This implementation is only |
372 | 373 | expected to work for <var>Item</var> ground and either <var>Set1</var> |
373 | 374 | or <var>Set2</var> ground. The "chk" suffix is meant to remind you of <a class="pred" href="builtinlist.html#memberchk/2">memberchk/2</a>, |
374 | 375 | which also expects its first argument to be ground. <code>ord_selectchk(X, S, T)</code> |
375 | =<var>></var> <code>ord_memberchk(X, S)</code> & <code>\+</code> <code>ord_memberchk(X, T)</code>. | |
376 | =<var>></var> | |
377 | <code>ord_memberchk(X, S)</code> & <code>\+</code> <code>ord_memberchk(X, T)</code>. | |
376 | 378 | |
377 | 379 | <dl class="tags"> |
378 | 380 | <dt class="tag">author</dt> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section E.4</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section E.4</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 5.5</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 5.5</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section A.18</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section A.18</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 3.4</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 3.4</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section A.19</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section A.19</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
334 | 334 | </dd> |
335 | 335 | <dt class="pubdef"><span class="pred-tag">[det]</span><a id="lazy_list_location/3"><strong>lazy_list_location</strong>(<var>-Location</var>)</a><code>//</code></dt> |
336 | 336 | <dd class="defbody"> |
337 | True when <var>Location</var> is an (error) location term that | |
338 | represents the current location in the DCG list. | |
337 | Determine current (error) location in a lazy list. True when | |
338 | <var>Location</var> is an (error) location term that represents the | |
339 | current location in the DCG list. | |
339 | 340 | <table class="arglist"> |
340 | 341 | <tr><td><var>Location</var> </td><td>is a term <code>file(Name, Line, LinePos, CharNo)</code> |
341 | 342 | or |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 9.5</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 9.5</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section C.1</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section C.1</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 7.3</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 7.3</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.1</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.1</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section A.20</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section A.20</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section F.1</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section F.1</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.40</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.40</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 3.1</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 3.1</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section A.22</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section A.22</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section A.21</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section A.21</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.37</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.37</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 10.2</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 10.2</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 10.1</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 10.1</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section A.23</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section A.23</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 2.1</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 2.1</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section A.24</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section A.24</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section B.10</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section B.10</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section A.25</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section A.25</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section A.26</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section A.26</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 5.7</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 5.7</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section A.27</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section A.27</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 5.10</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 5.10</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 7.6</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 7.6</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.11</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.11</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section A.28</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section A.28</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section E.3</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section E.3</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 1.4</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 1.4</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.39</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.39</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 1.2</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 1.2</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
237 | 237 | |
238 | 238 | <a id="sec:status"></a> |
239 | 239 | |
240 | <p>This manual describes version 7.1.13 of SWI-Prolog. SWI-Prolog is | |
240 | <p>This manual describes version 7.1.16 of SWI-Prolog. SWI-Prolog is | |
241 | 241 | widely considered to be a robust and scalable implementation of the |
242 | 242 | Prolog language. It is widely used in education and research. In |
243 | 243 | addition, it is in use for <var>24 × 7</var> mission critical |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.17</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.17</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.24</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.24</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 1.3</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 1.3</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 1.1</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 1.1</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 2.15</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 2.15</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section B.3</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section B.3</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.34</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.34</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.19</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.19</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 8.2</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 8.2</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 8.3</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 8.3</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 8.1</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 8.1</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section A.29</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section A.29</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
382 | 382 | </dd> |
383 | 383 | <dt class="multidef"><span class="pred-tag">[semidet,multifile]</span><a id="create_pool/1"><strong>create_pool</strong>(<var>+PoolName</var>)</a></dt> |
384 | 384 | <dd class="defbody"> |
385 | This hook is called if <a class="pred" href="threadpool.html#thread_create_in_pool/4">thread_create_in_pool/4</a> | |
386 | discovers that the thread pool does not exist. If the hook succeeds, | |
385 | Hook to create a thread pool lazily. The hook is called if | |
387 | 386 | <a class="pred" href="threadpool.html#thread_create_in_pool/4">thread_create_in_pool/4</a> |
387 | discovers that the thread pool does not exist. If the hook succeeds, <a class="pred" href="threadpool.html#thread_create_in_pool/4">thread_create_in_pool/4</a> | |
388 | 388 | retries creating the thread. For example, we can use the following |
389 | 389 | declaration to create threads in the pool <code>media</code>, which |
390 | 390 | holds a maximum of 20 threads. |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 8.4</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 8.4</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 8.5</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 8.5</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.36</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.36</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 2.8</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 2.8</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section B.4</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section B.4</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.33</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.33</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 4.6</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 4.6</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section A.30</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section A.30</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section A.31</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section A.31</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 10.3</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 10.3</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 3.2</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 3.2</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section A.32</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section A.32</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 5.1</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 5.1</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 2.18</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 2.18</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section A.14</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section A.14</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
1 | 1 | |
2 | 2 | <html> |
3 | 3 | <head> |
4 | <title>SWI-Prolog 7.1.13 Reference Manual: Section 3.7</title><link rel="home" href="index.html"> | |
4 | <title>SWI-Prolog 7.1.16 Reference Manual: Section 3.7</title><link rel="home" href="index.html"> | |
5 | 5 | <link rel="contents" href="Contents.html"> |
6 | 6 | <link rel="index" href="DocIndex.html"> |
7 | 7 | <link rel="summary" href="summary.html"> |
3227 | 3227 | |
3228 | 3228 | \begin{description} |
3229 | 3229 | \predicate[ISO]{open}{4}{+SrcDest, +Mode, -Stream, +Options} |
3230 | ISO compliant predicate to open a stream. \arg{SrcDest} is either an | |
3231 | atom specifying a file, or a term `\exam{pipe(\arg{Command})}', | |
3232 | like see/1 and tell/1. \arg{Mode} is one of \const{read}, \const{write}, | |
3233 | \const{append} or \const{update}. Mode \const{append} opens the file for | |
3234 | writing, positioning the file pointer at the end. Mode \const{update} | |
3235 | opens the file for writing, positioning the file pointer at the | |
3236 | beginning of the file without truncating the file. \arg{Stream} is | |
3237 | either a variable, in which case it is bound to an integer identifying | |
3238 | the stream, or an atom, in which case this atom will be the stream | |
3239 | identifier.% | |
3230 | True when \arg{SrcDest} can be opened in \arg{Mode} and \arg{Stream} is | |
3231 | an I/O stream to/from the object. \arg{SrcDest} is normally the name of | |
3232 | a file, represented as an atom or string. \arg{Mode} is one of | |
3233 | \const{read}, \const{write}, \const{append} or \const{update}. Mode | |
3234 | \const{append} opens the file for writing, positioning the file pointer | |
3235 | at the end. Mode \const{update} opens the file for writing, positioning | |
3236 | the file pointer at the beginning of the file without truncating the | |
3237 | file. \arg{Stream} is either a variable, in which case it is bound to an | |
3238 | integer identifying the stream, or an atom, in which case this atom will | |
3239 | be the stream identifier.% | |
3240 | 3240 | \footnote{New code should use the \term{alias}{Alias} |
3241 | 3241 | option for compatibility with the ISO standard.} |
3242 | The \arg{Options} list can contain the following options: | |
3242 | ||
3243 | SWI-Prolog also allows \arg{SrcDest} to be a term \term{pipe}{Command}. | |
3244 | In this form, \arg{Command} is started as a child process and if | |
3245 | \arg{Mode} is \const{write}, output written to \arg{Stream} is sent to | |
3246 | the standard input of \arg{Command}. Viso versa, if \arg{Mode} is | |
3247 | \const{read}, data written by \arg{Command} to the standard output may | |
3248 | be read from \arg{Stream}. On Unix systems, \arg{Command} is handed to | |
3249 | popen() which hands it to the Unix shell. On Windows, \arg{Command} is | |
3250 | executed directly. See also process_create/3 from \pllib{process}. | |
3251 | ||
3252 | The following \arg{Options} are recognised by open/4: | |
3243 | 3253 | |
3244 | 3254 | \begin{description} |
3245 | 3255 | \termitem{type}{Type} |
7633 | 7643 | \end{code} |
7634 | 7644 | |
7635 | 7645 | Temporary files created using this call are removed if the Prolog |
7636 | process terminates. Calling delete_file/1 using \arg{FileName} removes | |
7637 | the file and removes the entry from the administration of | |
7638 | files-to-be-deleted. | |
7646 | process terminates \emph{gracefully}. Calling delete_file/1 using | |
7647 | \arg{FileName} removes the file and removes the entry from the | |
7648 | administration of files-to-be-deleted. | |
7639 | 7649 | |
7640 | 7650 | \predicate{make_directory}{1}{+Directory} |
7641 | 7651 | Create a new directory (folder) on the filesystem. Raises an exception |
62 | 62 | <p> |
63 | 63 | The traditional command line tools are included in the app. To access |
64 | 64 | them from the <code>Terminal</code> application, add the directory |
65 | <code>/Applications/SWI-Prolog/Contents/MacOS</code> to | |
65 | <code>/Applications/SWI-Prolog.app/Contents/MacOS</code> to | |
66 | 66 | <code>$PATH</code> (replace with the actual location if you installed |
67 | 67 | the app in a different location). |
68 | 68 | </p> |
58 | 58 | |
59 | 59 | \newcommand{\vmajor}{6} |
60 | 60 | \newcommand{\vminor}{6} |
61 | \newcommand{\vpatch}{5} | |
62 | \newcommand{\vmonth}{April} | |
61 | \newcommand{\vpatch}{6} | |
62 | \newcommand{\vmonth}{May} | |
63 | 63 | \newcommand{\vyear}{2014} |
64 | 64 | |
65 | 65 | \newcommand{\versionshort}{\vmajor.\vminor} |
Binary diff not shown
Binary diff not shown
917 | 917 | |
918 | 918 | \begin{quote} |
919 | 919 | \begin{tabular}{ll} |
920 | \const{as} & Max address space \\ | |
920 | 921 | \const{cpu} & CPU time in seconds \\ |
921 | 922 | \const{fsize} & Maximum filesize \\ |
922 | 923 | \const{data} & max data size \\ |
599 | 599 | while the second sets the last-modified time to the current time. |
600 | 600 | |
601 | 601 | <pre class="code"> |
602 | ?- set_time_file(foo, [acess(Access)], []). | |
602 | ?- set_time_file(foo, [access(Access)], []). | |
603 | 603 | ?- set_time_file(foo, [], [modified(now)]). |
604 | 604 | </pre> |
605 | 605 | |
617 | 617 | <dl class="tags"> |
618 | 618 | <dt class="tag">Errors</dt> |
619 | 619 | <dd> |
620 | domain_error(link_type, <var>Type</var>) if the requested link-type is | |
620 | <code>domain_error(link_type, Type)</code> if the requested link-type is | |
621 | 621 | unknown or not supported on the target OS. |
622 | 622 | </dd> |
623 | 623 | </dl> |
637 | 637 | Path = '../../nice'. |
638 | 638 | </pre> |
639 | 639 | |
640 | <table class="paramlist"> | |
640 | <table class="arglist"> | |
641 | 641 | <tr valign="top"><td><var>All</var> </td><td>paths must be in canonical |
642 | 642 | POSIX notation, i.e., using / to separate segments in the path. See |
643 | 643 | <span class="pred-ext">prolog_to_os_filename/2</span>. </td></tr> |
657 | 657 | ?File, +Path</var>)</a></dt> |
658 | 658 | <dd class="defbody"> |
659 | 659 | True when <var>Path</var> is the full path-name for <var>File</var> in |
660 | Dir. This is comparable to atom_concat(<var>Directory</var>, <var>File</var>, <var>Path</var>), | |
660 | Dir. This is comparable to <code>atom_concat(Directory, File, Path)</code>, | |
661 | 661 | but it ensures there is exactly one / between the two parts. Notes: |
662 | 662 | |
663 | 663 | <p> |
2550 | 2550 | The defined resources are: |
2551 | 2551 | <blockquote> |
2552 | 2552 | <table border="0" frame="void" rules="groups"> |
2553 | <tr valign="top"><td><code>as</code> </td><td>Max address space </td></tr> | |
2553 | 2554 | <tr valign="top"><td><code>cpu</code> </td><td>CPU time in seconds </td></tr> |
2554 | 2555 | <tr valign="top"><td><code>fsize</code> </td><td>Maximum filesize </td></tr> |
2555 | 2556 | <tr valign="top"><td><code>data</code> </td><td>max data size </td></tr> |
Binary diff not shown
97 | 97 | salt[2] = '\0'; |
98 | 98 | |
99 | 99 | LOCK(); |
100 | s2 = crypt(pw, salt); | |
101 | rval = (strcmp(s2, e) == 0 ? TRUE : FALSE); | |
100 | rval = ( (s2 = crypt(pw, salt)) && | |
101 | strcmp(s2, e) == 0 | |
102 | ); | |
102 | 103 | UNLOCK(); |
103 | 104 | |
104 | 105 | return rval; |
2 | 2 | Author: Jan Wielemaker |
3 | 3 | E-mail: J.Wielemaker@cs.vu.nl |
4 | 4 | WWW: http://www.swi-prolog.org |
5 | Copyright (C): 2002-2010, University of Amsterdam | |
5 | Copyright (C): 2002-2014, University of Amsterdam | |
6 | 6 | Vu University Amsterdam |
7 | 7 | |
8 | 8 | This program is free software; you can redistribute it and/or |
80 | 80 | % current time. |
81 | 81 | % |
82 | 82 | % == |
83 | % ?- set_time_file(foo, [acess(Access)], []). | |
83 | % ?- set_time_file(foo, [access(Access)], []). | |
84 | 84 | % ?- set_time_file(foo, [], [modified(now)]). |
85 | 85 | % == |
86 | 86 |
69 | 69 | else if ( strcmp(s, "rss") == 0 ) |
70 | 70 | resource = RLIMIT_RSS; |
71 | 71 | #endif |
72 | #ifdef RLIMIT_AS | |
73 | else if ( strcmp(s, "as") == 0 ) | |
74 | resource = RLIMIT_AS; | |
75 | #endif | |
72 | 76 | #ifdef RLIMIT_MEMLOCK |
73 | 77 | else if ( strcmp(s, "memlock") == 0 ) |
74 | 78 | resource = RLIMIT_MEMLOCK; |
102 | 106 | if ( PL_get_int64(new, &n) ) |
103 | 107 | { |
104 | 108 | set: |
105 | if ( rlim.rlim_cur != (unsigned long) n ) | |
109 | if ( rlim.rlim_cur != (rlim_t) n ) | |
106 | 110 | { rlim.rlim_cur = n; |
107 | 111 | if ( !setrlimit(resource, &rlim) == 0 ) |
108 | 112 | return pl_error("rlimit", 3, NULL, ERR_ERRNO, errno, "set", "resource_limit", what); |
Binary diff not shown
15 | 15 | EXAMPLES= demo_body.pl demo_client.pl demo_threads.pl demo_xpce.pl \ |
16 | 16 | calc.pl demo_files.pl demo_pwp.pl demo_openid.pl \ |
17 | 17 | demo_daemon.pl |
18 | EXAMPLEEXE= demo_inetd debian-init-script | |
18 | EXAMPLEEXE= demo_inetd linux-init-script | |
19 | 19 | XPCEPL= http_image.pl |
25 | 25 | Demo script to run the SWI-Prolog HTTP server as a Unix |
26 | 26 | service. |
27 | 27 | |
28 | $ debian-init-script : | |
29 | /etc/init.d script for Debian based Unix system. Must be | |
30 | configured. | |
28 | $ linux-init-script : | |
29 | /etc/init.d script for Debian and Redhat based Unix systems. | |
30 | Must be configured. | |
31 | 31 | |
32 | 32 | ---+ Session management demo: |
33 | 33 |
0 | #!/bin/sh | |
1 | ### BEGIN INIT INFO | |
2 | # Provides: swi-httpd | |
3 | # Required-Start: $local_fs $remote_fs $network $syslog $named | |
4 | # Required-Stop: $local_fs $remote_fs $network $syslog $named | |
5 | # Default-Start: 2 3 4 5 | |
6 | # Default-Stop: 0 1 6 | |
7 | # X-Interactive: true | |
8 | # Short-Description: Start/stop SWI-Prolog web server | |
9 | ### END INIT INFO | |
10 | ||
11 | # Installation | |
12 | # | |
13 | # 1. Copy this file to /etc/init.d/<server> | |
14 | # 2. Edit the Configuration section below | |
15 | # 3. Run | |
16 | # % update-rc.d <server> defaults | |
17 | # % /etc/init.d/<server> start | |
18 | ||
19 | # Configuration section | |
20 | # | |
21 | SWIPL=/usr/bin/swipl | |
22 | DIR=/srv/swipl-httpd | |
23 | SCRIPT=daemon.pl | |
24 | USER=www | |
25 | PORT=80 | |
26 | DAEMONARGS= | |
27 | ||
28 | # Uncomment to only listen for connections from localhost | |
29 | # DAEMONARGS="$DAEMONARGS --ip=localhost" | |
30 | ||
31 | HTTPID=swipl-httpd-$PORT | |
32 | PIDFILE=/var/run/$HTTPID.pid | |
33 | SYSLOG=$HTTPID | |
34 | ||
35 | # End of normal configuration | |
36 | ||
37 | . /lib/lsb/init-functions | |
38 | test -f /etc/default/rcS && . /etc/default/rcS | |
39 | ||
40 | DAEMONARGS="$DAEMONARGS --port=$PORT --user=$USER --fork" | |
41 | if [ ! -z "$SYSLOG" ]; then DAEMONARGS="$DAEMONARGS --syslog=$SYSLOG"; fi | |
42 | if [ ! -z "$PIDFILE" ]; then DAEMONARGS="$DAEMONARGS --pidfile=$PIDFILE"; fi | |
43 | ||
44 | pidofserver() | |
45 | { if [ -f "$PIDFILE" ]; then | |
46 | cat "$PIDFILE" | |
47 | else | |
48 | ps aux | grep "[0-9] *$SWIPL.*--port=$PORT" 2>/dev/null | awk '{print $2}' | |
49 | fi | |
50 | } | |
51 | ||
52 | running() | |
53 | { if [ -z "$1" ]; then return 1; fi | |
54 | ||
55 | if kill -0 $1 2> /dev/null; then | |
56 | return 0 | |
57 | else | |
58 | return 1 | |
59 | fi | |
60 | } | |
61 | ||
62 | waitserver() | |
63 | { i=0; | |
64 | ||
65 | while running $1; do | |
66 | if [ $i = '60' ]; then | |
67 | return 1; | |
68 | else | |
69 | if [ $i = '0' ]; then | |
70 | echo -n " ... waiting " | |
71 | else | |
72 | echo -n "." | |
73 | fi | |
74 | i=$(($i+1)) | |
75 | sleep 1 | |
76 | fi | |
77 | done | |
78 | } | |
79 | ||
80 | case $1 in | |
81 | start) | |
82 | log_daemon_msg "Starting web server" "$HTTPID" | |
83 | if (cd $DIR && $SWIPL -q -s $SCRIPT -- $DAEMONARGS); then | |
84 | log_end_msg 0 | |
85 | else | |
86 | log_end_msg 1 | |
87 | fi | |
88 | ;; | |
89 | stop) | |
90 | log_daemon_msg "Stopping web server" "$HTTPID" | |
91 | PID=$(pidofserver) | |
92 | kill $PID | |
93 | if waitserver $PID; then | |
94 | log_end_msg 0 | |
95 | else | |
96 | kill -9 $PID | |
97 | waitserver $PID | |
98 | fi | |
99 | ;; | |
100 | restart) | |
101 | $0 stop && $0 start | |
102 | ;; | |
103 | status) | |
104 | PID=$(pidofserver) | |
105 | if running "$PID"; then | |
106 | echo "SWI-Prolog HTTP server is running (pid $PID)." | |
107 | exit 0 | |
108 | else | |
109 | echo "SWI-Prolog HTTP server is NOT running." | |
110 | if [ -e $PIDFILE ]; then | |
111 | exit 1 | |
112 | else | |
113 | exit 3 | |
114 | fi | |
115 | fi | |
116 | ;; | |
117 | *) | |
118 | log_success_msg "Usage: /etc/init.d/swipl-httpd {start|stop|restart|status}" | |
119 | exit 1 | |
120 | esac |
0 | #!/bin/sh | |
1 | ### BEGIN INIT INFO | |
2 | # Provides: swi-httpd | |
3 | # Required-Start: $local_fs $remote_fs $network $syslog $named | |
4 | # Required-Stop: $local_fs $remote_fs $network $syslog $named | |
5 | # Default-Start: 2 3 4 5 | |
6 | # Default-Stop: 0 1 6 | |
7 | # X-Interactive: true | |
8 | # Short-Description: Start/stop SWI-Prolog web server | |
9 | ### END INIT INFO | |
10 | ||
11 | # Installation | |
12 | # | |
13 | # 0. On Redhat/CentOS: yum install redhat-lsb | |
14 | # 1. Copy this file to /etc/init.d/<server> | |
15 | # 2. Edit the Configuration section below | |
16 | # 3. Run | |
17 | # % update-rc.d <server> defaults | |
18 | # % /etc/init.d/<server> start | |
19 | ||
20 | # Configuration section | |
21 | # | |
22 | SWIPL=/usr/bin/swipl | |
23 | DIR=/srv/swipl-httpd | |
24 | SCRIPT=daemon.pl | |
25 | USER=www-data | |
26 | PORT=80 | |
27 | DAEMONARGS= | |
28 | ||
29 | # Uncomment to only listen for connections from localhost | |
30 | # DAEMONARGS="$DAEMONARGS --ip=localhost" | |
31 | ||
32 | HTTPID=swipl-httpd-$PORT | |
33 | PIDFILE=/var/run/$HTTPID.pid | |
34 | SYSLOG=$HTTPID | |
35 | ||
36 | # End of normal configuration | |
37 | ||
38 | . /lib/lsb/init-functions | |
39 | test -f /etc/default/rcS && . /etc/default/rcS | |
40 | ||
41 | DAEMONARGS="$DAEMONARGS --port=$PORT --user=$USER --fork" | |
42 | if [ ! -z "$SYSLOG" ]; then DAEMONARGS="$DAEMONARGS --syslog=$SYSLOG"; fi | |
43 | if [ ! -z "$PIDFILE" ]; then DAEMONARGS="$DAEMONARGS --pidfile=$PIDFILE"; fi | |
44 | ||
45 | pidofserver() | |
46 | { if [ -f "$PIDFILE" ]; then | |
47 | cat "$PIDFILE" | |
48 | else | |
49 | ps aux | grep "[0-9] *$SWIPL.*--port=$PORT" 2>/dev/null | awk '{print $2}' | |
50 | fi | |
51 | } | |
52 | ||
53 | running() | |
54 | { if [ -z "$1" ]; then return 1; fi | |
55 | ||
56 | if kill -0 $1 2> /dev/null; then | |
57 | return 0 | |
58 | else | |
59 | return 1 | |
60 | fi | |
61 | } | |
62 | ||
63 | waitserver() | |
64 | { i=0; | |
65 | ||
66 | while running $1; do | |
67 | if [ $i = '60' ]; then | |
68 | return 1; | |
69 | else | |
70 | if [ $i = '0' ]; then | |
71 | echo -n " ... waiting " | |
72 | else | |
73 | echo -n "." | |
74 | fi | |
75 | i=$(($i+1)) | |
76 | sleep 1 | |
77 | fi | |
78 | done | |
79 | } | |
80 | ||
81 | case $1 in | |
82 | start) | |
83 | MESSAGE="Starting web server $HTTPID" | |
84 | if (cd $DIR && $SWIPL -q -s $SCRIPT -- $DAEMONARGS); then | |
85 | log_success_msg $MESSAGE | |
86 | else | |
87 | log_failure_msg $MESSAGE | |
88 | fi | |
89 | ;; | |
90 | stop) | |
91 | MESSAGE="Stopping web server $HTTPID" | |
92 | PID=$(pidofserver) | |
93 | kill $PID | |
94 | if waitserver $PID; then | |
95 | log_success_msg $MESSAGE | |
96 | else | |
97 | kill -9 $PID | |
98 | if waitserver $PID; then | |
99 | log_success_msg $MESSAGE | |
100 | else | |
101 | log_failure_msg $MESSAGE | |
102 | fi | |
103 | fi | |
104 | ;; | |
105 | restart) | |
106 | $0 stop && $0 start | |
107 | ;; | |
108 | status) | |
109 | PID=$(pidofserver) | |
110 | if running "$PID"; then | |
111 | echo "SWI-Prolog HTTP server is running (pid $PID)." | |
112 | exit 0 | |
113 | else | |
114 | echo "SWI-Prolog HTTP server is NOT running." | |
115 | if [ -e $PIDFILE ]; then | |
116 | exit 1 | |
117 | else | |
118 | exit 3 | |
119 | fi | |
120 | fi | |
121 | ;; | |
122 | *) | |
123 | log_success_msg "Usage: /etc/init.d/swipl-httpd {start|stop|restart|status}" | |
124 | exit 1 | |
125 | esac |
2886 | 2886 | <dl class="tags"> |
2887 | 2887 | <dt class="tag">See also</dt> |
2888 | 2888 | <dd> |
2889 | The file <var><</var>swi-home<var>></var>/doc/packages/examples/http/debian-init-script | |
2889 | The file <var><</var>swi-home<var>></var>/doc/packages/examples/http/linux-init-script | |
2890 | 2890 | provides a /etc/init.d script for controlling a server as a normal Unix |
2891 | 2891 | service.</dd> |
2892 | 2892 | <dt class="mtag">To be done</dt> |
Binary diff not shown
85 | 85 | |
86 | 86 | @tbd Make it work with SSL |
87 | 87 | @tbd Cleanup issues wrt. loading and initialization of xpce. |
88 | @see The file <swi-home>/doc/packages/examples/http/debian-init-script | |
88 | @see The file <swi-home>/doc/packages/examples/http/linux-init-script | |
89 | 89 | provides a /etc/init.d script for controlling a server as a normal |
90 | 90 | Unix service. |
91 | 91 | */ |
674 | 674 | JPLLDFLAGS |
675 | 675 | JPLCFLAGS |
676 | 676 | JUNIT |
677 | JAVADOCFLAGS | |
677 | 678 | JAVALIBS |
678 | 679 | JAVACFLAGS |
679 | 680 | JAVA_HOME |
2398 | 2399 | |
2399 | 2400 | |
2400 | 2401 | |
2402 | ||
2401 | 2403 | PLPKGDIR=${PLPKGDIR-..} |
2402 | 2404 | |
2403 | 2405 | if test -z "$PLINCL"; then |
4856 | 4858 | JAVA_TEST=Test.java |
4857 | 4859 | CLASS_TEST=Test.class |
4858 | 4860 | cat << \EOF > $JAVA_TEST |
4859 | /* #line 4860 "configure" */ | |
4861 | /* #line 4862 "configure" */ | |
4860 | 4862 | public class Test { |
4861 | 4863 | } |
4862 | 4864 | EOF |
5032 | 5034 | if uudecode$EXEEXT Test.uue; then |
5033 | 5035 | ac_cv_prog_uudecode_base64=yes |
5034 | 5036 | else |
5035 | echo "configure: 5036: uudecode had trouble decoding base 64 file 'Test.uue'" >&5 | |
5037 | echo "configure: 5038: uudecode had trouble decoding base 64 file 'Test.uue'" >&5 | |
5036 | 5038 | echo "configure: failed file was:" >&5 |
5037 | 5039 | cat Test.uue >&5 |
5038 | 5040 | ac_cv_prog_uudecode_base64=no |
5163 | 5165 | JAVA_TEST=Test.java |
5164 | 5166 | CLASS_TEST=Test.class |
5165 | 5167 | cat << \EOF > $JAVA_TEST |
5166 | /* #line 5167 "configure" */ | |
5168 | /* #line 5169 "configure" */ | |
5167 | 5169 | public class Test { |
5168 | 5170 | } |
5169 | 5171 | EOF |
5198 | 5200 | CLASS_TEST=Test.class |
5199 | 5201 | TEST=Test |
5200 | 5202 | cat << \EOF > $JAVA_TEST |
5201 | /* [#]line 5202 "configure" */ | |
5203 | /* [#]line 5204 "configure" */ | |
5202 | 5204 | public class Test { |
5203 | 5205 | public static void main (String args[]) { |
5204 | 5206 | System.exit (0); |
5428 | 5430 | fi |
5429 | 5431 | test "x$JAVADOC" = x && as_fn_error $? "no acceptable javadoc generator found in \$PATH" "$LINENO" 5 |
5430 | 5432 | |
5433 | ||
5434 | ||
5435 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking javadoc -Xdoclint..." >&5 | |
5436 | $as_echo "$as_me: checking javadoc -Xdoclint..." >&6;} | |
5437 | if "$JAVADOC" -Xdoclint:none -help >/dev/null 2>/dev/null; then | |
5438 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5 | |
5439 | $as_echo "yes" >&6; } | |
5440 | JAVADOCFLAGS="-Xdoclint:none" | |
5441 | else | |
5442 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 | |
5443 | $as_echo "no" >&6; } | |
5444 | fi | |
5431 | 5445 | |
5432 | 5446 | escape_space() |
5433 | 5447 | { sed -e "s/Program Files/Program-SPACE-Files/g" -e "s/ (x86)/SPACEX86/g" |
6 | 6 | AC_SUBST(JAVA_HOME) |
7 | 7 | AC_SUBST(JAVACFLAGS) |
8 | 8 | AC_SUBST(JAVALIBS) |
9 | AC_SUBST(JAVADOCFLAGS) | |
9 | 10 | AC_SUBST(JUNIT) |
10 | 11 | AC_SUBST(JPLCFLAGS) |
11 | 12 | AC_SUBST(JPLLDFLAGS) |
83 | 84 | AC_PROG_JAR(jar) |
84 | 85 | AC_PROG_JAVADOC(javadoc) |
85 | 86 | |
87 | dnl Our javadoc is not strict, while javadoc v8 enforces this | |
88 | ||
89 | AC_CHECKING(javadoc -Xdoclint) | |
90 | if "$JAVADOC" -Xdoclint:none -help >/dev/null 2>/dev/null; then | |
91 | AC_MSG_RESULT(yes) | |
92 | JAVADOCFLAGS="-Xdoclint:none" | |
93 | else | |
94 | AC_MSG_RESULT(no) | |
95 | fi | |
96 | ||
86 | 97 | escape_space() |
87 | 98 | { sed -e "s/Program Files/Program-SPACE-Files/g" -e "s/ (x86)/SPACEX86/g" |
88 | 99 | } |
8 | 8 | JAR=@JAR@ |
9 | 9 | JUNIT=@JUNIT@ |
10 | 10 | JAVADOC=@JAVADOC@ |
11 | JAVADOCFLAGS=@JAVADOCFLAGS@ | |
11 | 12 | JPLJAR=../../jpl.jar |
12 | 13 | TSTJAR=../../jpltest.jar |
13 | 14 | JPLDOC=../../docs/java_api/javadoc |
81 | 82 | endif |
82 | 83 | |
83 | 84 | $(JPLDOC): $(JPLJAVA) |
84 | "$(JAVADOC)" -public -d $(JPLDOC) $(JPLJAVA) | |
85 | "$(JAVADOC)" $(JAVADOCFLAGS) -public -d $(JPLDOC) $(JPLJAVA) | |
85 | 86 | |
86 | 87 | clean:: |
87 | 88 | rm -f *~ jpl/*.class jpl/test/*.class jpl/fli/*.class |
Binary diff not shown
Binary diff not shown
0 | <http://www.example.com/c/s> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.example.com/c/Class> . | |
1 | <http://www.example.com/c/s> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.example.com/c/Class> . | |
2 | <http://www.example.com/c/s> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.example.com/c/Class> . | |
3 | <http://www.example.com/c/s> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.example.com/c/Class> . | |
4 | <http://www.example.com/c> <http://www.w3.org/1999/02/22-rdf-syntax-ns#type> <http://www.example.com/c/Class> . |
0 | @base <http://www.example.com/a/b> . | |
1 | @prefix t: <../c/> . | |
2 | @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> . | |
3 | ||
4 | <../c/s> a t:Class . | |
5 | <../../c/s> a t:Class . | |
6 | <.././c/s> a t:Class . | |
7 | <..//c/s> a t:Class . | |
8 | </c> a t:Class . | |
9 |
272 | 272 | |
273 | 273 | q->type = Q_TRANSACTION; |
274 | 274 | q->transaction = ti->queries.transaction; |
275 | q->reindex_gen = GEN_MAX; /* should not get this down */ | |
275 | 276 | |
276 | 277 | if ( ss && ss != SNAPSHOT_ANONYMOUS ) |
277 | 278 | { int ss_tid = snapshot_thread(ss); |
837 | 838 | |
838 | 839 | /* revert creation of new */ |
839 | 840 | if ( is_wr_transaction_gen(q, t->lifespan.born) ) |
840 | { t->lifespan.died = GEN_PREHIST; | |
841 | { t = deref_triple(db, t); | |
842 | t->lifespan.died = GEN_PREHIST; | |
841 | 843 | erase_triple(db, t, q); |
842 | 844 | } |
843 | 845 | } |
849 | 851 | |
850 | 852 | /* revert deletion of old */ |
851 | 853 | if ( is_wr_transaction_gen(q, t->lifespan.died) ) |
852 | { t->lifespan.died = GEN_MAX; | |
854 | { t = deref_triple(db, t); | |
855 | ||
856 | t->lifespan.died = GEN_MAX; | |
853 | 857 | } |
854 | 858 | } |
855 | 859 | |
861 | 865 | |
862 | 866 | /* revert deletion of old */ |
863 | 867 | if ( is_wr_transaction_gen(q, to->lifespan.died) ) |
864 | { to->lifespan.died = GEN_MAX; | |
868 | { to = deref_triple(db, to); | |
869 | ||
870 | to->lifespan.died = GEN_MAX; | |
865 | 871 | } |
866 | 872 | /* revert creation of new */ |
867 | 873 | if ( is_wr_transaction_gen(q, tn->lifespan.born) && |
868 | 874 | tn->lifespan.died == gen_max ) |
869 | { tn->lifespan.died = GEN_PREHIST; | |
875 | { tn = deref_triple(db, tn); | |
876 | tn->lifespan.died = GEN_PREHIST; | |
870 | 877 | erase_triple(db, tn, q); |
871 | 878 | } |
872 | 879 | } |
175 | 175 | |
176 | 176 | static inline triple * |
177 | 177 | deref_triple(rdf_db *db, triple *t) |
178 | { while(t->reindexed) | |
179 | t = fetch_triple(db, t->reindexed); | |
178 | { SECURE(int times = 32); | |
179 | ||
180 | while(t->reindexed) | |
181 | { t = fetch_triple(db, t->reindexed); | |
182 | SECURE(if ( --times == 0 ) assert(0)); | |
183 | } | |
180 | 184 | |
181 | 185 | return t; |
182 | 186 | } |
73 | 73 | static functor_t FUNCTOR_resources1; |
74 | 74 | static functor_t FUNCTOR_predicates1; |
75 | 75 | static functor_t FUNCTOR_duplicates1; |
76 | static functor_t FUNCTOR_lingering1; | |
76 | 77 | static functor_t FUNCTOR_literals1; |
77 | 78 | static functor_t FUNCTOR_subject1; |
78 | 79 | static functor_t FUNCTOR_predicate1; |
172 | 173 | static predicate_cloud *new_predicate_cloud(rdf_db *db, |
173 | 174 | predicate **p, size_t count); |
174 | 175 | static int unify_literal(term_t lit, literal *l); |
176 | static int free_literal(rdf_db *db, literal *lit); | |
175 | 177 | static int check_predicate_cloud(predicate_cloud *c); |
176 | 178 | static void invalidate_is_leaf(predicate *p, query *q, int add); |
177 | 179 | static void create_triple_hashes(rdf_db *db, int count, int *ic); |
946 | 948 | } |
947 | 949 | } |
948 | 950 | |
949 | static void | |
950 | finalize_triple(void *data, void *client) | |
951 | { unregister_triple(client, data); | |
952 | } | |
953 | ||
954 | 951 | static triple * |
955 | 952 | triple_follow_hash(rdf_db *db, triple *t, int icol) |
956 | 953 | { triple_id nid = t->tp.next[icol]; |
970 | 967 | #define T_ID(t) (t) |
971 | 968 | |
972 | 969 | #endif /*COMPACT*/ |
970 | ||
971 | static void | |
972 | finalize_triple(void *data, void *client) | |
973 | { triple *t = data; | |
974 | rdf_db *db = client; | |
975 | ||
976 | if ( !db->resetting ) | |
977 | { unlock_atoms(db, t); | |
978 | if ( t->object_is_literal && t->object.literal ) | |
979 | free_literal(db, t->object.literal); | |
980 | #ifdef COMPACT | |
981 | unregister_triple(db, t); | |
982 | #endif | |
983 | } | |
984 | SECURE(memset(t, 0, sizeof(*t))); | |
985 | TMAGIC(t, T_FREED); | |
986 | ATOMIC_SUB(&db->lingering, 1); | |
987 | } | |
973 | 988 | |
974 | 989 | |
975 | 990 | /******************************* |
3145 | 3160 | static void |
3146 | 3161 | unalloc_triple(rdf_db *db, triple *t, int linger) |
3147 | 3162 | { if ( t ) |
3148 | { assert(t->atoms_locked == FALSE); | |
3149 | ||
3150 | if ( linger ) | |
3151 | { | |
3163 | { if ( linger ) | |
3164 | { TMAGIC(t, T_LINGERING); | |
3152 | 3165 | #ifdef COMPACT |
3153 | 3166 | if ( t->id != TRIPLE_NO_ID ) |
3167 | #endif | |
3154 | 3168 | deferred_finalize(&db->defer_triples, t, |
3155 | 3169 | finalize_triple, db); |
3156 | #else | |
3157 | deferred_free(&db->defer_triples, t); | |
3158 | #endif | |
3170 | ATOMIC_ADD(&db->lingering, 1); | |
3159 | 3171 | } else |
3160 | { free(t); | |
3172 | { unlock_atoms(db, t); | |
3173 | if ( t->object_is_literal && t->object.literal ) | |
3174 | free_literal(db, t->object.literal); | |
3175 | SECURE(memset(t, 0, sizeof(*t))); | |
3176 | TMAGIC(t, T_FREED); | |
3177 | free(t); | |
3161 | 3178 | } |
3162 | 3179 | } |
3163 | 3180 | } |
3382 | 3399 | of triples that will be added. This is used to guess the hash |
3383 | 3400 | requirements of the table and thus avoid duplicating triples in on |
3384 | 3401 | optimize_triple_hashes(). |
3385 | ||
3386 | TBD: Can we omit linking all the hashes when adding triples? Then we | |
3387 | need to materialize on the first query. | |
3388 | 3402 | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ |
3389 | 3403 | |
3390 | 3404 | void |
3420 | 3434 | break; |
3421 | 3435 | case BY_O: |
3422 | 3436 | case BY_PO: |
3423 | while ( SCALE(db->resources.hash.count + db->literals.count) > | |
3424 | sizenow<<resize ) | |
3437 | { size_t setsize = SCALE(db->resources.hash.count + db->literals.count); | |
3438 | ||
3439 | if ( setsize > triples ) | |
3440 | setsize = triples; | |
3441 | while ( setsize > sizenow<<resize ) | |
3425 | 3442 | resize++; |
3426 | 3443 | break; |
3444 | } | |
3427 | 3445 | case BY_SPO: |
3428 | 3446 | while ( (extra+triples)/spo->avg_chain_len > sizenow<<resize ) |
3429 | 3447 | resize++; |
3571 | 3589 | { triple *t2 = alloc_triple(); |
3572 | 3590 | |
3573 | 3591 | *t2 = *t; |
3592 | t2->has_reindex_prev = TRUE; | |
3574 | 3593 | memset(&t2->tp, 0, sizeof(t2->tp)); |
3575 | 3594 | register_triple(db, t2); |
3576 | 3595 | simpleMutexLock(&db->queries.write.lock); |
3577 | 3596 | link_triple_hash(db, t2); |
3597 | TMAGIC(t2, T_CHAINED2); | |
3578 | 3598 | t->reindexed = T_ID(t2); |
3599 | TMAGIC(t, T_REINDEXED); | |
3579 | 3600 | t->lifespan.died = db->reindexed++; |
3580 | 3601 | if ( t2->object_is_literal ) /* do not deallocate lit twice */ |
3581 | 3602 | { simpleMutexLock(&db->locks.literal); |
3717 | 3738 | |
3718 | 3739 | static inline int |
3719 | 3740 | is_garbage_triple(triple *t, gen_t old_query_gen, gen_t old_reindex_gen) |
3720 | { if ( t->reindexed ) /* Safe: reindex_triple() */ | |
3741 | { if ( t->has_reindex_prev ) | |
3742 | return FALSE; | |
3743 | ||
3744 | if ( t->reindexed ) /* Safe: reindex_triple() */ | |
3721 | 3745 | return t->lifespan.died < old_reindex_gen; /* is also part of GC */ |
3722 | 3746 | else |
3723 | 3747 | return t->lifespan.died < old_query_gen; |
3755 | 3779 | }); |
3756 | 3780 | |
3757 | 3781 | if ( t->reindexed ) |
3782 | { triple *t2 = fetch_triple(db, t->reindexed); | |
3783 | ||
3758 | 3784 | db->gc.reclaimed_reindexed++; |
3759 | else | |
3785 | t2->has_reindex_prev = FALSE; | |
3786 | } else | |
3760 | 3787 | db->gc.reclaimed_triples++; |
3761 | 3788 | |
3762 | 3789 | simpleMutexUnlock(&db->queries.write.lock); |
4072 | 4099 | |
4073 | 4100 | static void |
4074 | 4101 | free_triple(rdf_db *db, triple *t, int linger) |
4075 | { unlock_atoms(db, t); | |
4076 | ||
4077 | if ( t->object_is_literal && t->object.literal ) | |
4078 | { assert(!linger || t->object.literal->shared); | |
4079 | free_literal(db, t->object.literal); | |
4080 | } | |
4081 | if ( t->match == STR_MATCH_BETWEEN ) | |
4102 | { if ( t->match == STR_MATCH_BETWEEN ) | |
4082 | 4103 | free_literal_value(db, &t->tp.end); |
4083 | 4104 | |
4084 | if ( t->allocated ) | |
4085 | unalloc_triple(db, t, linger); | |
4105 | if ( !t->allocated ) | |
4106 | { unlock_atoms(db, t); | |
4107 | if ( t->object_is_literal && t->object.literal ) | |
4108 | free_literal(db, t->object.literal); | |
4109 | } else | |
4110 | { unalloc_triple(db, t, linger); | |
4111 | } | |
4086 | 4112 | } |
4087 | 4113 | |
4088 | 4114 | |
4332 | 4358 | { assert(!t->linked); |
4333 | 4359 | |
4334 | 4360 | link_triple_hash(db, t); |
4361 | TMAGIC(t, T_CHAINED1); | |
4335 | 4362 | add_triple_consequences(db, t, q); |
4336 | 4363 | db->created++; |
4337 | 4364 | |
6145 | 6172 | !t->object_is_literal ) |
6146 | 6173 | { atom_t o = t->object.resource; |
6147 | 6174 | |
6148 | t->object.resource = ID_ATOM(t->subject_id); | |
6149 | t->subject_id = ATOM_ID(o); | |
6175 | t->object.resource = t->subject_id ? ID_ATOM(t->subject_id) : 0; | |
6176 | t->subject_id = o ? ATOM_ID(o) : 0; | |
6150 | 6177 | |
6151 | 6178 | if ( t->predicate.r ) |
6152 | 6179 | t->predicate.r = i; |
6437 | 6464 | db->maintain_duplicates = FALSE; |
6438 | 6465 | |
6439 | 6466 | if ( db->duplicates ) |
6440 | { for(t=fetch_triple(db, db->by_none.head); | |
6467 | { enter_scan(&db->defer_all); | |
6468 | for(t=fetch_triple(db, db->by_none.head); | |
6441 | 6469 | t; |
6442 | 6470 | t=triple_follow_hash(db, t, ICOL(BY_NONE))) |
6443 | 6471 | { if ( ++count % 10240 == 0 && |
6444 | 6472 | (PL_handle_signals() < 0 || db->resetting) ) |
6445 | 6473 | |
6446 | { simpleMutexUnlock(&db->locks.duplicates); | |
6474 | { exit_scan(&db->defer_all); | |
6475 | simpleMutexUnlock(&db->locks.duplicates); | |
6447 | 6476 | return FALSE; /* aborted */ |
6448 | 6477 | } |
6449 | 6478 | t->is_duplicate = FALSE; |
6450 | 6479 | } |
6480 | exit_scan(&db->defer_all); | |
6451 | 6481 | |
6452 | 6482 | db->duplicates = 0; |
6453 | 6483 | } |
6454 | 6484 | |
6455 | 6485 | db->maintain_duplicates = TRUE; |
6456 | 6486 | |
6487 | enter_scan(&db->defer_all); | |
6457 | 6488 | for(t=fetch_triple(db, db->by_none.head); |
6458 | 6489 | t; |
6459 | 6490 | t=triple_follow_hash(db, t, ICOL(BY_NONE))) |
6460 | 6491 | { if ( ++count % 1024 == 0 && |
6461 | 6492 | PL_handle_signals() < 0 ) |
6462 | { db->maintain_duplicates = FALSE; /* no point anymore */ | |
6493 | { exit_scan(&db->defer_all); | |
6494 | db->maintain_duplicates = FALSE; /* no point anymore */ | |
6463 | 6495 | simpleMutexUnlock(&db->locks.duplicates); |
6464 | 6496 | return FALSE; |
6465 | 6497 | } |
6466 | 6498 | mark_duplicate(db, t, NULL); |
6467 | 6499 | } |
6500 | exit_scan(&db->defer_all); | |
6468 | 6501 | |
6469 | 6502 | db->duplicates_up_to_date = TRUE; |
6470 | 6503 | simpleMutexUnlock(&db->locks.duplicates); |
7866 | 7899 | ep->i = 0; |
7867 | 7900 | ep->p = NULL; |
7868 | 7901 | goto next; |
7869 | } else if ( PL_get_atom_ex(name, &a) ) | |
7870 | { predicate *p; | |
7871 | ||
7872 | if ( (p=existing_predicate(db, a)) ) | |
7873 | return TRUE; | |
7902 | } else if ( PL_get_atom(name, &a) ) | |
7903 | { return existing_predicate(db, a) != NULL; | |
7904 | } else if ( PL_is_functor(name, FUNCTOR_literal1) ) | |
7905 | { return FALSE; | |
7874 | 7906 | } |
7875 | return FALSE; | |
7907 | ||
7908 | return PL_type_error("atom", name); | |
7876 | 7909 | case PL_REDO: |
7877 | 7910 | ep = PL_foreign_context_address(h); |
7878 | 7911 | goto next; |
8498 | 8531 | { if ( db->duplicates_up_to_date == FALSE ) |
8499 | 8532 | return FALSE; |
8500 | 8533 | v = db->duplicates; |
8534 | } else if ( f == FUNCTOR_lingering1 ) | |
8535 | { v = db->lingering; | |
8501 | 8536 | } else if ( f == FUNCTOR_literals1 ) |
8502 | 8537 | { v = db->literals.count; |
8503 | 8538 | } else if ( f == FUNCTOR_triples2 && PL_is_functor(key, f) ) |
8817 | 8852 | reset_db(rdf_db *db) |
8818 | 8853 | { int rc; |
8819 | 8854 | |
8820 | db->resetting = TRUE; | |
8821 | ||
8822 | 8855 | suspend_gc(db); |
8823 | 8856 | simpleMutexLock(&db->locks.duplicates); |
8824 | 8857 | erase_snapshots(db); |
8837 | 8870 | |
8838 | 8871 | simpleMutexUnlock(&db->locks.duplicates); |
8839 | 8872 | resume_gc(db); |
8840 | db->resetting = FALSE; | |
8841 | 8873 | |
8842 | 8874 | return rc; |
8843 | 8875 | } |
8856 | 8888 | static foreign_t |
8857 | 8889 | rdf_reset_db(void) |
8858 | 8890 | { rdf_db *db = rdf_current_db(); |
8859 | query *q = open_query(db); | |
8891 | query *q; | |
8860 | 8892 | int rc; |
8893 | ||
8894 | db->resetting = TRUE; | |
8895 | q = open_query(db); | |
8861 | 8896 | |
8862 | 8897 | if ( q->depth > 0 || q->transaction ) |
8863 | 8898 | { close_query(q); |
8870 | 8905 | |
8871 | 8906 | rc = reset_db(db); |
8872 | 8907 | close_query(q); |
8908 | db->resetting = FALSE; | |
8873 | 8909 | |
8874 | 8910 | return rc; |
8875 | 8911 | } |
9028 | 9064 | MKFUNCTOR(literal, 2); |
9029 | 9065 | MKFUNCTOR(searched_nodes, 1); |
9030 | 9066 | MKFUNCTOR(duplicates, 1); |
9067 | MKFUNCTOR(lingering, 1); | |
9031 | 9068 | MKFUNCTOR(literals, 1); |
9032 | 9069 | MKFUNCTOR(symmetric, 1); |
9033 | 9070 | MKFUNCTOR(transitive, 1); |
9088 | 9125 | keys[i++] = FUNCTOR_predicates1; |
9089 | 9126 | keys[i++] = FUNCTOR_searched_nodes1; |
9090 | 9127 | keys[i++] = FUNCTOR_duplicates1; |
9128 | keys[i++] = FUNCTOR_lingering1; | |
9091 | 9129 | keys[i++] = FUNCTOR_literals1; |
9092 | 9130 | keys[i++] = FUNCTOR_triples2; |
9093 | 9131 | keys[i++] = FUNCTOR_gc4; |
9163 | 9201 | rdf_checks_literal_references, 0); |
9164 | 9202 | #endif |
9165 | 9203 | |
9166 | #ifdef O_SECURE | |
9167 | PL_register_foreign("rdf_dump_literals", 0, dump_literals, 0); | |
9168 | PL_register_foreign("rdf_check_literals", 0, check_transitivity, 0); | |
9169 | #endif | |
9170 | ||
9171 | 9204 | PL_register_foreign("lang_matches", 2, lang_matches, 0); |
9172 | 9205 | |
9173 | 9206 | install_atom_map(); |
285 | 285 | typedef unsigned int triple_id; /* Triple identifier */ |
286 | 286 | #endif |
287 | 287 | |
288 | #ifdef TRIPLE_MAGIC | |
289 | ||
290 | typedef enum | |
291 | { T_CHAINED1 = TRIPLE_MAGIC, /* Added to hash-chains */ | |
292 | T_CHAINED2, /* Added to hash as reindexed */ | |
293 | T_REINDEXED, /* Reindexed (waiting for GC) */ | |
294 | T_LINGERING, /* waiting to be freed */ | |
295 | T_FREED /* freed */ | |
296 | } triple_status; | |
297 | ||
298 | #define TMAGIC(t, s) (t->magic = s) | |
299 | ||
300 | #else | |
301 | ||
302 | #define TMAGIC(t, s) (void)0 | |
303 | ||
304 | #endif | |
305 | ||
288 | 306 | typedef struct triple |
289 | 307 | { lifespan lifespan; /* Start and end generation */ |
290 | 308 | atom_id subject_id; |
326 | 344 | unsigned loaded : 1; /* for EV_ASSERT_LOAD */ |
327 | 345 | unsigned erased : 1; /* Consistency of erased */ |
328 | 346 | unsigned lingering : 1; /* Deleted; waiting for GC */ |
347 | unsigned has_reindex_prev : 1; /* some ->reindexed points to me */ | |
329 | 348 | /* Total: 32 */ |
349 | #ifdef TRIPLE_MAGIC | |
350 | triple_status magic; | |
351 | #endif | |
330 | 352 | } triple; |
331 | 353 | |
332 | 354 | |
423 | 445 | #endif |
424 | 446 | size_t created; /* #triples created */ |
425 | 447 | size_t erased; /* #triples erased */ |
426 | gen_t reindexed; /* #triples reindexed (gc_hash_chain) */ | |
448 | size_t reindexed; /* #triples reindexed (gc_hash_chain) */ | |
449 | size_t lingering; /* #triples lingering to be freed */ | |
427 | 450 | size_t indexed[16]; /* Count calls (2**4 possible indices) */ |
428 | 451 | resource_db resources; /* admin of used resources */ |
429 | 452 | pred_hash predicates; /* Predicate table */ |
1191 | 1191 | rdf_statistics_(triples(Count)). |
1192 | 1192 | rdf_statistics(duplicates(Count)) :- |
1193 | 1193 | rdf_statistics_(duplicates(Count)). |
1194 | rdf_statistics(lingering(Count)) :- | |
1195 | rdf_statistics_(lingering(Count)). | |
1194 | 1196 | rdf_statistics(resources(Count)) :- |
1195 | 1197 | rdf_statistics_(resources(Count)). |
1196 | 1198 | rdf_statistics(properties(Count)) :- |
22 | 22 | |
23 | 23 | #include "rdf_db.h" |
24 | 24 | #include "murmur.h" |
25 | ||
26 | static functor_t FUNCTOR_literal1; | |
25 | 27 | |
26 | 28 | static int |
27 | 29 | init_resource_hash(resource_db *rdb) |
253 | 255 | state->current = NULL; |
254 | 256 | state->current_entry = -1; |
255 | 257 | break; |
256 | } else if ( PL_get_atom_ex(r, &name) ) | |
258 | } else if ( PL_get_atom(r, &name) ) | |
257 | 259 | { resource *r; |
258 | 260 | |
259 | 261 | if ( (r=existing_resource(&db->resources, name)) && |
261 | 263 | ) |
262 | 264 | return TRUE; |
263 | 265 | return FALSE; |
264 | } | |
265 | ||
266 | return FALSE; | |
266 | } else if ( PL_is_functor(r, FUNCTOR_literal1) ) | |
267 | return FALSE; | |
268 | ||
269 | return PL_type_error("atom", r); | |
267 | 270 | } |
268 | 271 | case PL_REDO: |
269 | 272 | state = PL_foreign_context_address(h); |
317 | 320 | } |
318 | 321 | #endif |
319 | 322 | |
323 | #define MKFUNCTOR(n, a) \ | |
324 | FUNCTOR_ ## n ## a = PL_new_functor(PL_new_atom(#n), a) | |
320 | 325 | #define NDET PL_FA_NONDETERMINISTIC |
321 | 326 | |
322 | 327 | int |
323 | 328 | register_resource_predicates(void) |
324 | { PL_register_foreign("rdf_resource", 1, rdf_resource, NDET); | |
329 | { MKFUNCTOR(literal, 1); | |
330 | ||
331 | PL_register_foreign("rdf_resource", 1, rdf_resource, NDET); | |
325 | 332 | #ifdef RDF_LOOKUP_RESOURCE |
326 | 333 | PL_register_foreign("rdf_lookup_resource", 1, rdf_lookup_resource, 0); |
327 | 334 | #endif |
2915 | 2915 | infrastructure. |
2916 | 2916 | |
2917 | 2917 | <dl class="latex"> |
2918 | <dt class="pubdef"><a name="rdf_load_turtle/3"><strong>rdf_load_turtle</strong>(<var>+Input, | |
2919 | -Triples, +Options</var>)</a></dt> | |
2920 | <dd class="defbody"> | |
2921 | ||
2922 | <dl class="tags"> | |
2923 | <dt class="tag">deprecated</dt> | |
2924 | <dd> | |
2925 | Use <a class="pred" href="#rdf_read_turtle/3">rdf_read_turtle/3</a> | |
2926 | </dd> | |
2927 | </dl> | |
2928 | ||
2929 | </dd> | |
2918 | 2930 | <dt class="pubdef"><span class="pred-tag">[det]</span><a name="rdf_process_turtle/3"><strong>rdf_process_turtle</strong>(<var>+Input, |
2919 | 2931 | :OnObject, +Options</var>)</a></dt> |
2920 | 2932 | <dd class="defbody"> |
2996 | 3008 | <code>https</code> or <code>file</code> url or a filename specification |
2997 | 3009 | as accepted by <span class="pred-ext">absolute_file_name/3</span>. </td></tr> |
2998 | 3010 | </table> |
2999 | </dd> | |
3000 | <dt class="pubdef"><a name="rdf_load_turtle/3"><strong>rdf_load_turtle</strong>(<var>+Input, | |
3001 | -Triples, +Options</var>)</a></dt> | |
3002 | <dd class="defbody"> | |
3003 | ||
3004 | <dl class="tags"> | |
3005 | <dt class="tag">deprecated</dt> | |
3006 | <dd> | |
3007 | Use <a class="pred" href="#rdf_read_turtle/3">rdf_read_turtle/3</a> | |
3008 | </dd> | |
3009 | </dl> | |
3010 | ||
3011 | 3011 | </dd> |
3012 | 3012 | </dl> |
3013 | 3013 |
Binary diff not shown
36 | 36 | :- use_module(library(xsdp_types)). |
37 | 37 | :- use_module(library(lists)). |
38 | 38 | :- use_module(library(plunit)). |
39 | :- use_module(library(debug)). | |
39 | 40 | |
40 | 41 | /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
41 | 42 | RDF-DB test file. A test is a clause of the form: |
319 | 320 | lshare(2) :- |
320 | 321 | rdf_assert(a,b,literal(aap)), |
321 | 322 | rdf_retractall(a,b,literal(aap)), |
322 | rdf_gc, | |
323 | rdf_statistics(literals(X)), | |
324 | expect(X == 0). | |
323 | assertion(no_literals). | |
325 | 324 | lshare(3) :- |
326 | 325 | rdf_assert(a,b,literal(aap)), |
327 | 326 | rdf_assert(a,c,literal(aap)), % shared |
331 | 330 | rdf_assert(a,c,literal(aap)), |
332 | 331 | rdf_retractall(a,b,literal(aap)), |
333 | 332 | rdf_retractall(a,c,literal(aap)), |
334 | rdf_gc, | |
335 | rdf_statistics(literals(X)), | |
336 | expect(X == 0). | |
333 | assertion(no_literals). | |
337 | 334 | lshare(5) :- |
338 | 335 | rdf_assert(a,b,literal(aap), g1), |
339 | 336 | rdf_assert(a,b,literal(aap), g2), |
340 | 337 | rdf_statistics(literals(X1)), |
341 | expect(X1 == 1), | |
338 | assertion(X1 == 1), | |
342 | 339 | rdf_retractall(a,b,literal(aap)), |
340 | assertion(no_literals). | |
341 | ||
342 | %% no_literals | |
343 | % | |
344 | % We may have to wait a little because the automatic garbage | |
345 | % collector did the work asynchronously and we still get the old | |
346 | % value. | |
347 | ||
348 | no_literals :- | |
343 | 349 | rdf_gc, |
344 | rdf_statistics(literals(X)), | |
345 | expect(X == 0). | |
346 | ||
347 | expect(Goal) :- | |
348 | Goal, !. | |
349 | expect(Goal) :- | |
350 | print_message(error, format('FALSE: ~q', [Goal])), | |
351 | backtrace(3), | |
352 | fail. | |
350 | ( rdf_statistics(literals(0)) | |
351 | -> true | |
352 | ; %writeln('Retrying'), | |
353 | between(1, 10, _), | |
354 | sleep(0.01), | |
355 | rdf_statistics(literals(0)) | |
356 | ). | |
353 | 357 | |
354 | 358 | |
355 | 359 | /******************************* |
656 | 660 | rdf_transaction(rdf_assert(x, a, y, db)), |
657 | 661 | rdf_monitor(do_monitor, [-all]), |
658 | 662 | findall(rdf(S,P,O), rdf(S,P,O), DB), |
659 | expect(DB == [ rdf(x, a, y), | |
660 | rdf(y, ia, x) | |
661 | ]), | |
663 | assertion(DB == [ rdf(x, a, y), | |
664 | rdf(y, ia, x) | |
665 | ]), | |
662 | 666 | rdf_monitor(do_monitor, []), |
663 | 667 | rdf_transaction(rdf_retractall(x, a, y, db)), |
664 | 668 | rdf_monitor(do_monitor, [-all]), |
665 | expect(\+rdf(_,_,_)). | |
669 | assertion(\+rdf(_,_,_)). | |
666 | 670 | |
667 | 671 | |
668 | 672 | |
695 | 699 | P == inverse_of(p). |
696 | 700 | |
697 | 701 | |
702 | /******************************* | |
703 | * INVERSE * | |
704 | *******************************/ | |
705 | ||
706 | inverse(1) :- | |
707 | rdf_assert(s, p, o), | |
708 | rdf_set_predicate(p, inverse_of(ip)), | |
709 | findall(O-S, rdf_has(O, ip, S), List), | |
710 | List == [o-s]. | |
698 | 711 | |
699 | 712 | |
700 | 713 | /******************************* |
828 | 841 | rdf_assert(s,p,o), |
829 | 842 | rdf_retractall(s,p,o), |
830 | 843 | rdf_statistics(triples(Count)), |
831 | expect(Count == 0). | |
844 | assertion(Count == 0). | |
832 | 845 | delete(2) :- |
833 | 846 | rdf_assert(s,p,o), |
834 | 847 | rdf_transaction(rdf_retractall(s,p,o)), |
835 | 848 | rdf_statistics(triples(Count)), |
836 | expect(Count == 0). | |
849 | assertion(Count == 0). | |
837 | 850 | delete(3) :- |
838 | 851 | rdf_transaction(rdf_assert(s,p,o)), |
839 | 852 | rdf_transaction(rdf_retractall(s,p,o)), |
840 | 853 | rdf_transaction(rdf_assert(s,p,o)), |
841 | 854 | rdf_statistics(triples(Count)), |
842 | expect(Count == 1). | |
855 | assertion(Count == 1). | |
843 | 856 | |
844 | 857 | |
845 | 858 | /******************************* |
853 | 866 | rdf_statistics(triples(T1)), |
854 | 867 | rdf_load(dc), |
855 | 868 | rdf_statistics(triples(T2)), |
856 | expect(T0 == T2), | |
857 | expect(T1 == 0). | |
869 | assertion(T0 == T2), | |
870 | assertion(T1 == 0). | |
858 | 871 | |
859 | 872 | /******************************* |
860 | 873 | * SCRIPTS * |
944 | 957 | testset(rdf_retractall). |
945 | 958 | testset(monitor). |
946 | 959 | testset(subproperty). |
960 | testset(inverse). | |
947 | 961 | testset(ptree). |
948 | 962 | testset(reachable). |
949 | 963 | testset(duplicates). |
202 | 202 | { wchar_t *base_uri; /* Base URI for <> */ |
203 | 203 | size_t base_uri_len; /* Length of base uri */ |
204 | 204 | size_t base_uri_base_len; /* Length upto last / */ |
205 | size_t base_uri_host_len; /* Length upto start of path */ | |
205 | 206 | wchar_t *empty_prefix; /* Empty :local */ |
206 | 207 | hash_map prefix_map; /* Prefix --> IRI */ |
207 | 208 | hash_map blank_node_map; /* Name --> resource */ |
652 | 653 | |
653 | 654 | |
654 | 655 | /******************************* |
656 | * CANONICAL RESOURCE * | |
657 | *******************************/ | |
658 | ||
659 | #define MAX_SAVEP 100 | |
660 | ||
661 | #define EOP(c) ((c) == 0 || (c) == '#' || (c) == '?') | |
662 | ||
663 | static void | |
664 | cpAfterPath(wchar_t *out, wchar_t *in) | |
665 | { while (*in ) | |
666 | *out++ = *in++; | |
667 | *out = EOS; | |
668 | } | |
669 | ||
670 | ||
671 | static wchar_t * | |
672 | url_skip_to_path(const wchar_t *in) | |
673 | { while( *in && *in != ':' ) /* skip scheme */ | |
674 | in++; | |
675 | if ( *in == ':' && in[1] == '/' && in[2] == '/' ) | |
676 | in += 3; | |
677 | while( *in && *in != '/' ) /* skip authority */ | |
678 | in++; | |
679 | ||
680 | return (wchar_t *)in; | |
681 | } | |
682 | ||
683 | ||
684 | static wchar_t * | |
685 | canonicaliseResourcePath(wchar_t *path) | |
686 | { wchar_t *in, *out, *start; | |
687 | wchar_t *save_buf[MAX_SAVEP]; | |
688 | wchar_t **savep = save_buf; | |
689 | ||
690 | in = url_skip_to_path(path); | |
691 | ||
692 | if ( !in[0] ) | |
693 | return path; | |
694 | out = start = in; /* start of path */ | |
695 | ||
696 | while( in[0] == '/' && in[1] == '.' && in[2] == '.' && in[3] == '/' ) | |
697 | in += 3; | |
698 | while( in[0] == '.' && in[1] == '/' ) | |
699 | in += 2; | |
700 | if ( in[0] == '/' ) | |
701 | *out++ = '/'; | |
702 | ||
703 | while(*in) | |
704 | { if (*in == '/') | |
705 | { | |
706 | again: | |
707 | if ( *in ) | |
708 | { while( in[1] == '/' ) /* delete multiple / */ | |
709 | in++; | |
710 | if ( in[1] == '.' ) | |
711 | { if ( in[2] == '/' ) /* delete /./ */ | |
712 | { in += 2; | |
713 | goto again; | |
714 | } | |
715 | if ( EOP(in[2]) ) /* delete trailing /. */ | |
716 | { cpAfterPath(out, in+2); | |
717 | return path; | |
718 | } | |
719 | if ( in[2] == '.' && (in[3] == '/' || EOP(in[3])) ) | |
720 | { if ( savep > save_buf ) /* delete /foo/../ */ | |
721 | { out = *(--savep); | |
722 | in += 3; | |
723 | if ( EOP(in[0]) && out > start+1 ) | |
724 | { cpAfterPath(out-1, in); /* delete trailing / */ | |
725 | return path; | |
726 | } | |
727 | goto again; | |
728 | } else if ( start[0] == '/' && out == start+1 ) | |
729 | { in += 3; | |
730 | goto again; | |
731 | } | |
732 | } | |
733 | } | |
734 | } | |
735 | if ( *in ) | |
736 | in++; | |
737 | if ( out > path && out[-1] != '/' ) | |
738 | *out++ = '/'; | |
739 | if ( savep < &save_buf[MAX_SAVEP-1] ) | |
740 | *savep++ = out; | |
741 | } else | |
742 | *out++ = *in++; | |
743 | } | |
744 | *out++ = *in++; | |
745 | ||
746 | return path; | |
747 | } | |
748 | ||
749 | ||
750 | /******************************* | |
655 | 751 | * SKIPPING * |
656 | 752 | *******************************/ |
657 | 753 | |
958 | 1054 | |
959 | 1055 | if ( uri[0] == '#' ) /* relative to file */ |
960 | 1056 | plen = ts->base_uri_len; |
1057 | else if ( uri[0] == '/' ) /* relative to host */ | |
1058 | plen = ts->base_uri_host_len; | |
961 | 1059 | else |
962 | 1060 | plen = ts->base_uri_base_len; |
963 | 1061 | |
976 | 1074 | |
977 | 1075 | wcsncpy(name, ts->base_uri, plen); |
978 | 1076 | wcscpy(name+plen, uri); |
1077 | canonicaliseResourcePath(name); | |
979 | 1078 | |
980 | 1079 | r->type = R_RESOURCE; |
981 | 1080 | r->v.r.name = name; |
1172 | 1271 | s--) |
1173 | 1272 | ; |
1174 | 1273 | ts->base_uri_base_len = s-ts->base_uri; |
1274 | ts->base_uri_host_len = url_skip_to_path(ts->base_uri)-ts->base_uri; | |
1175 | 1275 | |
1176 | 1276 | return TRUE; |
1177 | 1277 | } |
Binary diff not shown
1965 | 1965 | pd->positions = FALSE; |
1966 | 1966 | else |
1967 | 1967 | return sgml2pl_error(ERR_DOMAIN, "positions", a); |
1968 | } else | |
1969 | return sgml2pl_error(ERR_DOMAIN, "sgml_option", head); | |
1968 | } /* else ignored option */ | |
1970 | 1969 | } |
1971 | 1970 | if ( !PL_get_nil(tail) ) |
1972 | 1971 | return sgml2pl_error(ERR_TYPE, "list", tail); |
306 | 306 | modifier(last-Expr, I, L, Value, Value) :- !, % last-Expr |
307 | 307 | I =:= L-Expr. |
308 | 308 | modifier(Function, _, _, In, Out) :- |
309 | xpath_function(Function), !, | |
309 | 310 | xpath_function(Function, In, Out). |
310 | 311 | modifier(Function, _, _, In, Out) :- |
311 | 312 | xpath_condition(Function, In), |
332 | 333 | xpath_function(quote(Value), _, Value). % quote(Value) |
333 | 334 | |
334 | 335 | xpath_function(self). |
336 | xpath_function(content). | |
335 | 337 | xpath_function(text). |
336 | xpath_function(content). | |
337 | 338 | xpath_function(normalize_space). |
338 | 339 | xpath_function(number). |
339 | 340 | xpath_function(@_). |
341 | xpath_function(quote(_)). | |
340 | 342 | |
341 | 343 | |
342 | 344 | xpath_condition(Left = Right, Value) :- !, % = |
Binary diff not shown
Binary diff not shown
Binary diff not shown
112 | 112 | # Sub-modules |
113 | 113 | ################################################################ |
114 | 114 | |
115 | if grep 'url *= *../packages/' .gitmodules 2>&1 >/dev/null; then | |
115 | if grep 'url *= .*/packages/' .git/config 2>&1 >/dev/null; then | |
116 | 116 | printf "Updating git submodule references ..." |
117 | 117 | git submodule sync |
118 | 118 | echo "ok" |
54 | 54 | /* PLVERSION: 10000 * <Major> + 100 * <Minor> + <Patch> */ |
55 | 55 | |
56 | 56 | #ifndef PLVERSION |
57 | #define PLVERSION 60605 | |
57 | #define PLVERSION 60606 | |
58 | 58 | #endif |
59 | 59 | |
60 | 60 | /******************************* |
57 | 57 | test(attvar, true) :- |
58 | 58 | dif(X, 3), % error(_) fails because subsumes_term does not deal with attvar |
59 | 59 | catch(variant_sha1(x(a(X)), _), _, true). |
60 | test(float, fail) :- | |
61 | variant_sha1(1.0, Hash), | |
62 | variant_sha1(2.0, Hash). | |
60 | 63 | |
61 | 64 | v(_). |
62 | 65 |
14 | 14 | context_module(C). |
15 | 15 | |
16 | 16 | m(qm). |
17 | me(1=qm). | |
17 | 18 | m2(qm2). |
18 | 19 | g(A,qm(A)). |
19 | 20 | |
53 | 54 | M:(G,true)@QC. |
54 | 55 | test(localv, M-C == qm-qm) :- |
55 | 56 | call((m(M),M:qm(C))). |
57 | test(localv, M-C == qm-qm) :- | |
58 | call((me(1=M),M:qm(C))). | |
56 | 59 | test(local_argvar, M-C == qm-qm) :- |
57 | 60 | call((m(M),M:(qm(C),qm(C)))). |
58 | 61 | test(local_argvar, M-C == qm-qm) :- |
9446 | 9446 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 |
9447 | 9447 | $as_echo "no" >&6; } |
9448 | 9448 | fi fi fi |
9449 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lunwind" >&5 | |
9450 | $as_echo_n "checking for main in -lunwind... " >&6; } | |
9451 | if ${ac_cv_lib_unwind_main+:} false; then : | |
9452 | $as_echo_n "(cached) " >&6 | |
9453 | else | |
9454 | ac_check_lib_save_LIBS=$LIBS | |
9455 | LIBS="-lunwind $LIBS" | |
9456 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | |
9457 | /* end confdefs.h. */ | |
9458 | ||
9459 | ||
9460 | int | |
9461 | main () | |
9462 | { | |
9463 | return main (); | |
9464 | ; | |
9465 | return 0; | |
9466 | } | |
9467 | _ACEOF | |
9468 | if ac_fn_c_try_link "$LINENO"; then : | |
9469 | ac_cv_lib_unwind_main=yes | |
9470 | else | |
9471 | ac_cv_lib_unwind_main=no | |
9472 | fi | |
9473 | rm -f core conftest.err conftest.$ac_objext \ | |
9474 | conftest$ac_exeext conftest.$ac_ext | |
9475 | LIBS=$ac_check_lib_save_LIBS | |
9476 | fi | |
9477 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_unwind_main" >&5 | |
9478 | $as_echo "$ac_cv_lib_unwind_main" >&6; } | |
9479 | if test "x$ac_cv_lib_unwind_main" = xyes; then : | |
9480 | check_unwind_h=yes | |
9481 | fi | |
9482 | ||
9483 | if test "$check_unwind_h" = yes; then | |
9484 | ac_fn_c_check_header_mongrel "$LINENO" "libunwind.h" "ac_cv_header_libunwind_h" "$ac_includes_default" | |
9485 | if test "x$ac_cv_header_libunwind_h" = xyes; then : | |
9486 | ||
9487 | $as_echo "#define HAVE_LIBUNWIND 1" >>confdefs.h | |
9488 | ||
9489 | LIBS="-lunwind $LIBS" | |
9490 | fi | |
9491 | ||
9492 | ||
9493 | fi | |
9494 | ||
9495 | 9449 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for backtrace_symbols in -lexecinfo" >&5 |
9496 | 9450 | $as_echo_n "checking for backtrace_symbols in -lexecinfo... " >&6; } |
9497 | 9451 | if ${ac_cv_lib_execinfo_backtrace_symbols+:} false; then : |
9537 | 9491 | |
9538 | 9492 | fi |
9539 | 9493 | |
9494 | for ac_func in dladdr | |
9495 | do : | |
9496 | ac_fn_c_check_func "$LINENO" "dladdr" "ac_cv_func_dladdr" | |
9497 | if test "x$ac_cv_func_dladdr" = xyes; then : | |
9498 | cat >>confdefs.h <<_ACEOF | |
9499 | #define HAVE_DLADDR 1 | |
9500 | _ACEOF | |
9501 | ||
9502 | fi | |
9503 | done | |
9504 | ||
9505 | ||
9506 | if test "$ac_cv_func_dladdr" != "yes"; then | |
9507 | { $as_echo "$as_me:${as_lineno-$LINENO}: checking for main in -lunwind" >&5 | |
9508 | $as_echo_n "checking for main in -lunwind... " >&6; } | |
9509 | if ${ac_cv_lib_unwind_main+:} false; then : | |
9510 | $as_echo_n "(cached) " >&6 | |
9511 | else | |
9512 | ac_check_lib_save_LIBS=$LIBS | |
9513 | LIBS="-lunwind $LIBS" | |
9514 | cat confdefs.h - <<_ACEOF >conftest.$ac_ext | |
9515 | /* end confdefs.h. */ | |
9516 | ||
9517 | ||
9518 | int | |
9519 | main () | |
9520 | { | |
9521 | return main (); | |
9522 | ; | |
9523 | return 0; | |
9524 | } | |
9525 | _ACEOF | |
9526 | if ac_fn_c_try_link "$LINENO"; then : | |
9527 | ac_cv_lib_unwind_main=yes | |
9528 | else | |
9529 | ac_cv_lib_unwind_main=no | |
9530 | fi | |
9531 | rm -f core conftest.err conftest.$ac_objext \ | |
9532 | conftest$ac_exeext conftest.$ac_ext | |
9533 | LIBS=$ac_check_lib_save_LIBS | |
9534 | fi | |
9535 | { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_lib_unwind_main" >&5 | |
9536 | $as_echo "$ac_cv_lib_unwind_main" >&6; } | |
9537 | if test "x$ac_cv_lib_unwind_main" = xyes; then : | |
9538 | check_unwind_h=yes | |
9539 | fi | |
9540 | ||
9541 | if test "$check_unwind_h" = yes; then | |
9542 | ac_fn_c_check_header_mongrel "$LINENO" "libunwind.h" "ac_cv_header_libunwind_h" "$ac_includes_default" | |
9543 | if test "x$ac_cv_header_libunwind_h" = xyes; then : | |
9544 | ||
9545 | $as_echo "#define HAVE_LIBUNWIND 1" >>confdefs.h | |
9546 | ||
9547 | LIBS="-lunwind $LIBS" | |
9548 | fi | |
9549 | ||
9550 | ||
9551 | fi | |
9552 | fi | |
9540 | 9553 | |
9541 | 9554 | # The cast to long int works around a bug in the HP C Compiler |
9542 | 9555 | # version HP92453-01 B.11.11.23709.GP, which incorrectly rejects |
1369 | 1369 | fi dnl sc_nprocessors_conf |
1370 | 1370 | fi dnl "$MINGW" = false |
1371 | 1371 | |
1372 | AC_CHECK_LIB(unwind, main, | |
1373 | check_unwind_h=yes) | |
1374 | if test "$check_unwind_h" = yes; then | |
1375 | AC_CHECK_HEADER(libunwind.h, | |
1376 | AC_DEFINE(HAVE_LIBUNWIND, 1, | |
1377 | [ Define if you have libunwind and libunwind.h ]) | |
1378 | LIBS="-lunwind $LIBS") | |
1379 | fi | |
1380 | ||
1381 | 1372 | dnl Used in OpenBSD |
1382 | 1373 | AC_CHECK_LIB(execinfo, backtrace_symbols) |
1374 | AC_CHECK_FUNCS(dladdr) | |
1375 | ||
1376 | if test "$ac_cv_func_dladdr" != "yes"; then | |
1377 | AC_CHECK_LIB(unwind, main, | |
1378 | check_unwind_h=yes) | |
1379 | if test "$check_unwind_h" = yes; then | |
1380 | AC_CHECK_HEADER(libunwind.h, | |
1381 | AC_DEFINE(HAVE_LIBUNWIND, 1, | |
1382 | [ Define if you have libunwind and libunwind.h ]) | |
1383 | LIBS="-lunwind $LIBS") | |
1384 | fi | |
1385 | fi | |
1383 | 1386 | |
1384 | 1387 | AC_CHECK_SIZEOF(void*, 4) |
1385 | 1388 | AC_CHECK_SIZEOF(long, 4) |
25 | 25 | #define _WIN32_WINNT 0x0501 /* get RtlCaptureContext() */ |
26 | 26 | #endif |
27 | 27 | |
28 | #define _GNU_SOURCE | |
28 | 29 | #include "pl-incl.h" |
29 | 30 | #include "os/pl-cstack.h" |
30 | 31 | |
42 | 43 | * LIBUNWIND * |
43 | 44 | *******************************/ |
44 | 45 | |
45 | #if !defined(BTRACE_DONE) && defined(HAVE_LIBUNWIND) | |
46 | #if !defined(BTRACE_DONE) && defined(HAVE_LIBUNWIND) && !defined(HAVE_DLADDR) | |
46 | 47 | #define BTRACE_DONE 1 |
47 | 48 | #define UNW_LOCAL_ONLY |
48 | 49 | #include <libunwind.h> |
213 | 214 | * GLIBC * |
214 | 215 | *******************************/ |
215 | 216 | |
216 | #if !defined(BTRACE_DONE) && defined(HAVE_EXECINFO_H) && !defined(DMALLOC) | |
217 | #if !defined(BTRACE_DONE) && defined(HAVE_EXECINFO_H) | |
217 | 218 | #define BTRACE_DONE 1 |
218 | 219 | #include <execinfo.h> |
219 | 220 | #include <string.h> |
221 | #include <dlfcn.h> | |
222 | ||
223 | #define MAXCMD 1024 | |
220 | 224 | |
221 | 225 | /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
222 | This implementation uses the libgcc unwinding capabilities. | |
223 | ||
224 | Disabled of dmalloc is used because the free of the memory allocated by | |
225 | backtrace_symbols() is considered an error by dmalloc. | |
226 | This implementation uses the libgcc unwinding capabilities. If possible, | |
227 | addr2line(1) is used to obtain information at the line level. | |
226 | 228 | - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ |
227 | 229 | |
228 | 230 | typedef struct btrace |
229 | { char **symbols[SAVE_TRACES]; | |
231 | { char **retaddr[SAVE_TRACES]; | |
230 | 232 | const char *why[SAVE_TRACES]; |
231 | 233 | size_t sizes[SAVE_TRACES]; |
232 | 234 | int current; |
238 | 240 | { int i; |
239 | 241 | |
240 | 242 | for(i=0; i<SAVE_TRACES; i++) |
241 | { if ( bt->symbols[i] ) | |
242 | free(bt->symbols[i]); | |
243 | { if ( bt->retaddr[i] ) | |
244 | free(bt->retaddr[i]); | |
243 | 245 | } |
244 | 246 | |
245 | 247 | free(bt); |
304 | 306 | |
305 | 307 | frames = backtrace(array, sizeof(array)/sizeof(void *)); |
306 | 308 | bt->sizes[current] = frames; |
307 | if ( bt->symbols[current] ) | |
308 | free(bt->symbols[current]); | |
309 | bt->symbols[current] = backtrace_symbols(array, frames); | |
309 | if ( bt->retaddr[current] ) | |
310 | free(bt->retaddr[current]); | |
311 | if ( (bt->retaddr[current] = malloc(sizeof(void*)*frames)) ) | |
312 | memcpy(bt->retaddr[current], array, sizeof(void*)*frames); | |
310 | 313 | bt->why[current] = why; |
311 | 314 | } |
315 | } | |
316 | ||
317 | ||
318 | static int | |
319 | addr2line(const char *fname, uintptr_t offset, char *buf, size_t size) | |
320 | { char cmd[MAXCMD]; | |
321 | ||
322 | if ( snprintf(cmd, size, "addr2line -fe \"%s\" %p", | |
323 | fname, (void*)offset) < size ) | |
324 | { FILE *fd; | |
325 | ||
326 | if ( (fd=popen(cmd, "r")) ) | |
327 | { int c; | |
328 | char *ebuf = &buf[size-1]; | |
329 | char *o = buf; | |
330 | int nl = 0; | |
331 | ||
332 | while((c=fgetc(fd)) != EOF && o<ebuf) | |
333 | { if ( c == '\n' ) | |
334 | { const char *sep = "() at "; | |
335 | nl++; | |
336 | ||
337 | if ( nl == 1 && o+strlen(sep) < ebuf) | |
338 | { strcpy(o, sep); | |
339 | o += strlen(sep); | |
340 | } | |
341 | } else | |
342 | { *o++ = c; | |
343 | } | |
344 | } | |
345 | ||
346 | *o = '\0'; | |
347 | ||
348 | fclose(fd); | |
349 | return o > buf; | |
350 | } | |
351 | } | |
352 | ||
353 | return FALSE; | |
312 | 354 | } |
313 | 355 | |
314 | 356 | |
320 | 362 | { Sdprintf("C-stack trace labeled \"%s\":\n", bt->why[me]); |
321 | 363 | |
322 | 364 | for(i=0; i<bt->sizes[me]; i++) |
323 | Sdprintf(" [%d] %s\n", i, bt->symbols[me][i]); | |
365 | { Dl_info info; | |
366 | void *addr = bt->retaddr[me][i]; | |
367 | ||
368 | if ( dladdr(addr, &info) ) | |
369 | { uintptr_t offset = (uintptr_t)addr - (uintptr_t)info.dli_fbase; | |
370 | ||
371 | if ( info.dli_fname ) | |
372 | { char buf[512]; | |
373 | ||
374 | if ( strstr(info.dli_fname, ".so") && | |
375 | addr2line(info.dli_fname, offset, buf, sizeof(buf)) ) | |
376 | Sdprintf(" [%d] %s [%p]\n", i, buf, addr); | |
377 | else if ( info.dli_sname ) | |
378 | Sdprintf(" [%d] %s(%s+%p) [%p]\n", | |
379 | i, info.dli_fname, info.dli_sname, addr-info.dli_saddr, | |
380 | addr); | |
381 | else | |
382 | Sdprintf(" [%d] %s(+%p) [%p]\n", | |
383 | i, info.dli_fname, (void*)offset, addr); | |
384 | } else | |
385 | { Sdprintf(" [%d] ??? [%p]\n", i, addr); | |
386 | } | |
387 | } | |
388 | } | |
324 | 389 | } else |
325 | 390 | { Sdprintf("No stack trace\n"); |
326 | 391 | } |
800 | 800 | { int digits = (arg == NOARG ? 6 : arg); |
801 | 801 | |
802 | 802 | if ( digits > 0 ) |
803 | { double ip; | |
803 | { double ip, fp; | |
804 | 804 | char fmt[64]; |
805 | 805 | |
806 | ||
806 | 807 | cal_ftm(ftm, HAS_STAMP); |
808 | fp = modf(ftm->stamp, &ip) * pow(10, digits); | |
807 | 809 | Ssprintf(fmt, "%%0%dlld", digits); |
808 | OUTNUMBER(fd, fmt, (long)(modf(ftm->stamp, &ip) * | |
809 | pow(10, digits))); | |
810 | OUTNUMBER(fd, fmt, (long)(fp+0.5)); | |
810 | 811 | } |
811 | 812 | break; |
812 | 813 | } |
319 | 319 | } compileInfo, *CompileInfo; |
320 | 320 | |
321 | 321 | |
322 | static int link_local_var(Word v, int iv, CompileInfo ci ARG_LD); | |
323 | ||
324 | ||
322 | 325 | /******************************* |
323 | 326 | * WARNINGS * |
324 | 327 | *******************************/ |
1291 | 1294 | deRef(t); |
1292 | 1295 | if ( (iv=isIndexedVarTerm(*t PASS_LD)) >= 0 ) |
1293 | 1296 | { if ( ci->islocal || !isFirstVar(ci->used_var, iv) ) |
1294 | { tm->var_index = iv; | |
1297 | { if ( ci->islocal ) | |
1298 | { int rc; | |
1299 | ||
1300 | if ( (rc=link_local_var(t, iv, ci PASS_LD)) != TRUE ) | |
1301 | return rc; | |
1302 | } | |
1303 | tm->var_index = iv; | |
1295 | 1304 | tm->type = TM_VAR; |
1296 | 1305 | } else |
1297 | 1306 | { PL_error(NULL, 0, NULL, ERR_INSTANTIATION); |
1666 | 1675 | ClauseRef cref; |
1667 | 1676 | size_t space; |
1668 | 1677 | |
1669 | DEBUG(1, Sdprintf("%d argvars; %d prolog vars; %d vars", | |
1670 | ci.argvars, clause.prolog_vars, clause.variables)); | |
1678 | DEBUG(MSG_COMP_ARGVAR, | |
1679 | Sdprintf("%d argvars; %d prolog vars; %d vars", | |
1680 | ci.argvars, clause.prolog_vars, clause.variables)); | |
1671 | 1681 | assert(ci.argvars == ci.argvar); |
1672 | 1682 | |
1673 | 1683 | /* check space */ |
1703 | 1713 | setNextFrameFlags(fr, environment_frame); |
1704 | 1714 | setContextModule(fr, module); |
1705 | 1715 | |
1706 | DEBUG(1, Sdprintf("; now %d vars\n", clause.variables)); | |
1716 | DEBUG(MSG_COMP_ARGVAR, Sdprintf("; now %d vars\n", clause.variables)); | |
1717 | DEBUG(MSG_COMP_ARGVAR, vm_list(cl->codes)); | |
1707 | 1718 | lTop = (LocalFrame)p; |
1708 | 1719 | } |
1709 | 1720 | |
2023 | 2034 | #endif |
2024 | 2035 | |
2025 | 2036 | |
2037 | static int | |
2038 | link_local_var(Word v, int iv, CompileInfo ci ARG_LD) | |
2039 | { VarDef vd = LD->comp.vardefs[*v>>LMASK_BITS]; | |
2040 | int voffset = VAROFFSET(iv); | |
2041 | Word k = varFrameP(lTop, voffset); | |
2042 | ||
2043 | DEBUG(MSG_COMP_ARGVAR, | |
2044 | Sdprintf("Linking b_var(%d) to %s\n", index, vName(vd->address))); | |
2045 | ||
2046 | if ( k >= (Word) lMax ) | |
2047 | return LOCAL_OVERFLOW; | |
2048 | *k = makeRef(vd->address); | |
2049 | ||
2050 | return TRUE; | |
2051 | } | |
2052 | ||
2053 | ||
2026 | 2054 | /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - |
2027 | 2055 | Compile argument to a goal in the clause. The `islocal' compilation is |
2028 | 2056 | one of the complicating factors: atoms should not be registered (there |
2136 | 2164 | isvar: |
2137 | 2165 | if ( (index = isIndexedVarTerm(*arg PASS_LD)) >= 0 ) |
2138 | 2166 | { if ( ci->islocal ) |
2139 | { VarDef v = LD->comp.vardefs[*arg>>LMASK_BITS]; | |
2140 | int voffset = VAROFFSET(index); | |
2141 | Word k = varFrameP(lTop, voffset); | |
2142 | ||
2143 | DEBUG(1, Sdprintf("Linking b_var(%d) to %s\n", | |
2144 | index, vName(v->address))); | |
2145 | ||
2146 | if ( k >= (Word) lMax ) | |
2147 | return LOCAL_OVERFLOW; | |
2148 | *k = makeRef(v->address); | |
2167 | { int rc; | |
2168 | ||
2169 | if ( (rc=link_local_var(arg, index, ci PASS_LD)) != TRUE ) | |
2170 | return rc; | |
2149 | 2171 | |
2150 | 2172 | if ( index < 3 ) |
2151 | 2173 | { Output_0(ci, B_VAR0 + index); |
2152 | 2174 | } else |
2153 | { Output_1(ci, B_VAR, voffset); | |
2175 | { Output_1(ci, B_VAR, VAROFFSET(index)); | |
2154 | 2176 | } |
2155 | 2177 | |
2156 | 2178 | return TRUE; |
149 | 149 | COMMON(code) replacedBreak(Code PC); |
150 | 150 | COMMON(void) clearBreakPointsClause(Clause clause); |
151 | 151 | COMMON(int) unify_functor(term_t t, functor_t fd, int how); |
152 | COMMON(void) vm_list(Code code); | |
152 | 153 | |
153 | 154 | /* pl-dump.c */ |
154 | 155 | COMMON(word) saveProgram(term_t new); |
294 | 294 | { best_index->tried_better = new_bitvector(def->functor->arity); |
295 | 295 | |
296 | 296 | for(ci=def->impl.clauses.clause_indexes; ci; ci=ci->next) |
297 | set_bit(best_index->tried_better, ci->args[0]-1); | |
297 | { if ( indexKeyFromArgv(ci, argv PASS_LD) ) | |
298 | set_bit(best_index->tried_better, ci->args[0]-1); | |
299 | } | |
298 | 300 | } |
299 | 301 | |
300 | 302 | if ( (best=bestHash(argv, def, |
622 | 622 | case 'T': GD->options.trailSize = size; goto next; |
623 | 623 | case 'H': |
624 | 624 | case 'A': |
625 | Sdprintf("% Warning: -%csize is no longer supported\n", *s); | |
625 | Sdprintf("%% Warning: -%csize is no longer supported\n", *s); | |
626 | 626 | goto next; |
627 | 627 | } |
628 | 628 | } |
285 | 285 | |
286 | 286 | static inline int |
287 | 287 | is_signalled(ARG1_LD) |
288 | { return unlikely((LD->signal.pending[0]|LD->signal.pending[1]) != 0); | |
288 | { return LD && unlikely((LD->signal.pending[0]|LD->signal.pending[1]) != 0); | |
289 | 289 | } |
290 | 290 | |
291 | 291 | #endif /*PL_INLINE_H_INCLUDED*/ |
3147 | 3147 | DEBUG(MSG_UNLOAD, Sdprintf("removeClausesProcedure(%s), refs = %d\n", |
3148 | 3148 | predicateName(def), def->references)); |
3149 | 3149 | |
3150 | deleted = removeClausesProcedure(proc, | |
3151 | true(def, P_MULTIFILE) ? sf->index : 0, | |
3152 | TRUE); | |
3150 | if ( false(def, P_FOREIGN) ) | |
3151 | { deleted = removeClausesProcedure(proc, | |
3152 | true(def, P_MULTIFILE) ? sf->index : 0, | |
3153 | TRUE); | |
3154 | } | |
3153 | 3155 | |
3154 | 3156 | DEBUG(MSG_UNLOAD, |
3155 | 3157 | if ( false(def, P_MULTIFILE) && def->impl.clauses.number_of_clauses ) |
401 | 401 | case TAG_STRING: |
402 | 402 | case TAG_FLOAT: |
403 | 403 | { Word d = addressIndirect(w); |
404 | size_t n = wsizeofInd(*d); | |
404 | size_t n = wsizeofInd(w); | |
405 | 405 | |
406 | 406 | HASH("X", 1); |
407 | 407 | HASH(d, (unsigned long)(n*sizeof(word))); |
2815 | 2815 | { IOSTREAM *fd = state->wicFd; |
2816 | 2816 | |
2817 | 2817 | Sputc('I', fd); |
2818 | putAtom(state, owner); | |
2819 | putAtom(state, pn); | |
2818 | saveXR(state, owner); | |
2819 | saveXR(state, pn); | |
2820 | 2820 | putNum(line, fd); |
2821 | putAtom(state, fn); | |
2821 | saveXR(state, fn); | |
2822 | 2822 | putFloat(time, fd); |
2823 | 2823 | |
2824 | 2824 | return TRUE; |
49 | 49 | |
50 | 50 | all: swipl-rc$(EXEEXT) |
51 | 51 | |
52 | swipl-rc$(EXEEXT): librc.a rc.o | |
52 | swipl-rc$(EXEEXT): librc.a rc.o $(UXNTLIB) | |
53 | 53 | $(CC) $(LDFLAGS) -o $@ rc.o $(UXNTLIB) -L. -lrc |
54 | 54 | |
55 | 55 | librc.a: $(LIBOBJ) |
56 | 56 | rm -f $@ |
57 | 57 | $(AR) cq $@ $(LIBOBJ) |
58 | 58 | $(RANLIB) $@ |
59 | ||
60 | ifeq ($(MINGW),true) | |
61 | $(UXNTLIB): | |
62 | @(cd ../os/windows && $(MAKE) COFLAGS="$(COFLAGS)") | |
63 | endif | |
59 | 64 | |
60 | 65 | .c.o: |
61 | 66 | $(CC) -c -I.. $(CFLAGS) $< @COUTOPT@ |