File: library.html

package info (click to toggle)
swi-prolog 7.2.3%2Bdfsg-6
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 84,180 kB
  • ctags: 45,684
  • sloc: ansic: 330,358; perl: 268,104; sh: 6,795; java: 4,904; makefile: 4,561; cpp: 4,153; ruby: 1,594; yacc: 843; xml: 82; sed: 12; sql: 6
file content (1144 lines) | stat: -rw-r--r-- 58,518 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<html>
<head>
<title>SWI-Prolog 7.3.6 Reference Manual: Section F.2</title><link rel="home" href="index.html">
<link rel="contents" href="Contents.html">
<link rel="index" href="DocIndex.html">
<link rel="summary" href="summary.html">
<link rel="previous" href="predsummary.html">
<link rel="next" href="funcsummary.html">

<style type="text/css">

/* Style sheet for SWI-Prolog latex2html
*/

dd.defbody
{ margin-bottom: 1em;
}

dt.pubdef, dt.multidef
{ color: #fff;
padding: 2px 10px 0px 10px;
margin-bottom: 5px;
font-size: 18px;
vertical-align: middle;
overflow: hidden;
}

dt.pubdef { background-color: #0c3d6e; }
dt.multidef { background-color: #ef9439; }

.bib dd
{ margin-bottom: 1em;
}

.bib dt
{ float: left;
margin-right: 1.3ex;
}

pre.code
{ margin-left: 1.5em;
margin-right: 1.5em;
border: 1px dotted;
padding-top: 5px;
padding-left: 5px;
padding-bottom: 5px;
background-color: #f8f8f8;
}

div.navigate
{ text-align: center;
background-color: #f0f0f0;
border: 1px dotted;
padding: 5px;
}

div.title
{ text-align: center;
padding-bottom: 1em;
font-size: 200%;
font-weight: bold;
}

div.author
{ text-align: center;
font-style: italic;
}

div.abstract
{ margin-top: 2em;
background-color: #f0f0f0;
border: 1px dotted;
padding: 5px;
margin-left: 10%; margin-right:10%;
}

div.abstract-title
{ text-align: center;
padding: 5px;
font-size: 120%;
font-weight: bold;
}

div.toc-h1
{ font-size: 200%;
font-weight: bold;
}

div.toc-h2
{ font-size: 120%;
font-weight: bold;
margin-left: 2em;
}

div.toc-h3
{ font-size: 100%;
font-weight: bold;
margin-left: 4em;
}

div.toc-h4
{ font-size: 100%;
margin-left: 6em;
}

span.sec-nr
{
}

span.sec-title
{
}

span.pred-ext
{ font-weight: bold;
}

span.pred-tag
{ float: right;
padding-top: 0.2em;
font-size: 80%;
font-style: italic;
color: #fff;
}

div.caption
{ width: 80%;
margin: auto;
text-align:center;
}

/* Footnotes */
.fn {
color: red;
font-size: 70%;
}

.fn-text, .fnp {
position: absolute;
top: auto;
left: 10%;
border: 1px solid #000;
box-shadow: 5px 5px 5px #888;
display: none;
background: #fff;
color: #000;
margin-top: 25px;
padding: 8px 12px;
font-size: larger;
}

sup:hover span.fn-text
{ display: block;
}

/* Lists */

dl.latex
{ margin-top: 1ex;
margin-bottom: 0.5ex;
}

dl.latex dl.latex dd.defbody
{ margin-bottom: 0.5ex;
}

/* PlDoc Tags */

dl.tags
{ font-size: 90%;
margin-left: 5ex;
margin-top: 1ex;
margin-bottom: 0.5ex;
}

dl.tags dt
{ margin-left: 0pt;
font-weight: bold;
}

dl.tags dd
{ margin-left: 3ex;
}

td.param
{ font-style: italic;
font-weight: bold;
}

/* Index */

dt.index-sep
{ font-weight: bold;
font-size: +1;
margin-top: 1ex;
}

/* Tables */

table.center
{ margin: auto;
}

table.latex
{ border-collapse:collapse;
}

table.latex tr
{ vertical-align: text-top;
}

table.latex td,th
{ padding: 2px 1em;
}

table.latex tr.hline td,th
{ border-top: 1px solid black;
}

table.frame-box
{ border: 2px solid black;
}

</style>
</head>
<body style="background:white">
<div class="navigate"><a class="nav" href="index.html"><img src="home.gif" alt="Home"></a>
<a class="nav" href="Contents.html"><img src="index.gif" alt="Contents"></a>
<a class="nav" href="DocIndex.html"><img src="yellow_pages.gif" alt="Index"></a>
<a class="nav" href="summary.html"><img src="info.gif" alt="Summary"></a>
<a class="nav" href="predsummary.html"><img src="prev.gif" alt="Previous"></a>
<a class="nav" href="funcsummary.html"><img src="next.gif" alt="Next"></a>
</div>
<h2 id="sec:library"><a id="sec:F.2"><span class="sec-nr">F.2</span> <span class="sec-title">Library 
predicates</span></a></h2>

<a id="sec:library"></a>

<p><h3 id="sec:summary-lib-aggregate"><a id="sec:F.2.1"><span class="sec-nr">F.2.1</span> <span class="sec-title">library(aggregate)</span></a></h3>

<a id="sec:summary-lib-aggregate"></a>
<table>
<tr><td><a class="pred" href="aggregate.html#aggregate/3">aggregate/3</a></td><td>Aggregate 
bindings in Goal according to Template.</td></tr>
<tr><td><a class="pred" href="aggregate.html#aggregate/4">aggregate/4</a></td><td>Aggregate 
bindings in Goal according to Template.</td></tr>
<tr><td><a class="pred" href="aggregate.html#aggregate_all/3">aggregate_all/3</a></td><td>Aggregate 
bindings in Goal according to Template.</td></tr>
<tr><td><a class="pred" href="aggregate.html#aggregate_all/4">aggregate_all/4</a></td><td>Aggregate 
bindings in Goal according to Template.</td></tr>
<tr><td><a class="pred" href="aggregate.html#foreach/2">foreach/2</a></td><td>True 
if conjunction of results is true.</td></tr>
<tr><td><a class="pred" href="aggregate.html#free_variables/4">free_variables/4</a></td><td>Find 
free variables in bagof/setof template.</td></tr>
<tr><td><span class="pred-ext">safe_meta/2</span></td><td>Declare the 
aggregate meta-calls safe.</td></tr>
</table>

<p><h3 id="sec:summary-lib-apply"><a id="sec:F.2.2"><span class="sec-nr">F.2.2</span> <span class="sec-title">library(apply)</span></a></h3>

<a id="sec:summary-lib-apply"></a>
<table>
<tr><td><a class="pred" href="apply.html#exclude/3">exclude/3</a></td><td>Filter 
elements for which Goal fails.</td></tr>
<tr><td><a class="pred" href="apply.html#foldl/4">foldl/4</a></td><td>Fold 
a list, using arguments of the list as left argument.</td></tr>
<tr><td><a class="pred" href="apply.html#foldl/5">foldl/5</a></td><td>Fold 
a list, using arguments of the list as left argument.</td></tr>
<tr><td><a class="pred" href="apply.html#foldl/6">foldl/6</a></td><td>Fold 
a list, using arguments of the list as left argument.</td></tr>
<tr><td><a class="pred" href="apply.html#foldl/7">foldl/7</a></td><td>Fold 
a list, using arguments of the list as left argument.</td></tr>
<tr><td><a class="pred" href="apply.html#include/3">include/3</a></td><td>Filter 
elements for which Goal succeeds.</td></tr>
<tr><td><a class="pred" href="apply.html#maplist/2">maplist/2</a></td><td>True 
if Goal can successfully be applied on all elements of List.</td></tr>
<tr><td><a class="pred" href="apply.html#maplist/3">maplist/3</a></td><td>As 
maplist/2, operating on pairs of elements from two lists.</td></tr>
<tr><td><a class="pred" href="apply.html#maplist/4">maplist/4</a></td><td>As 
maplist/2, operating on triples of elements from three lists.</td></tr>
<tr><td><a class="pred" href="apply.html#maplist/5">maplist/5</a></td><td>As 
maplist/2, operating on quadruples of elements from four lists.</td></tr>
<tr><td><a class="pred" href="apply.html#partition/4">partition/4</a></td><td>Filter 
elements of List according to Pred.</td></tr>
<tr><td><a class="pred" href="apply.html#partition/5">partition/5</a></td><td>Filter 
List according to Pred in three sets.</td></tr>
<tr><td><a class="pred" href="apply.html#scanl/4">scanl/4</a></td><td>Left 
scan of list.</td></tr>
<tr><td><a class="pred" href="apply.html#scanl/5">scanl/5</a></td><td>Left 
scan of list.</td></tr>
<tr><td><a class="pred" href="apply.html#scanl/6">scanl/6</a></td><td>Left 
scan of list.</td></tr>
<tr><td><a class="pred" href="apply.html#scanl/7">scanl/7</a></td><td>Left 
scan of list.</td></tr>
</table>

<p><h3 id="sec:summary-lib-assoc"><a id="sec:F.2.3"><span class="sec-nr">F.2.3</span> <span class="sec-title">library(assoc)</span></a></h3>

<a id="sec:summary-lib-assoc"></a>
<table>
<tr><td><a class="pred" href="assoc.html#assoc_to_list/2">assoc_to_list/2</a></td><td>Translate 
assoc into a pairs list</td></tr>
<tr><td><a class="pred" href="assoc.html#assoc_to_keys/2">assoc_to_keys/2</a></td><td>Translate 
assoc into a key list</td></tr>
<tr><td><a class="pred" href="assoc.html#assoc_to_values/2">assoc_to_values/2</a></td><td>Translate 
assoc into a value list</td></tr>
<tr><td><a class="pred" href="assoc.html#empty_assoc/1">empty_assoc/1</a></td><td>Test/create 
an empty assoc</td></tr>
<tr><td><a class="pred" href="assoc.html#gen_assoc/3">gen_assoc/3</a></td><td>Non-deterministic 
enumeration of assoc</td></tr>
<tr><td><a class="pred" href="assoc.html#get_assoc/3">get_assoc/3</a></td><td>Get 
associated value</td></tr>
<tr><td><a class="pred" href="assoc.html#get_assoc/5">get_assoc/5</a></td><td>Get 
and replace associated value</td></tr>
<tr><td><a class="pred" href="assoc.html#list_to_assoc/2">list_to_assoc/2</a></td><td>Translate 
pair list to assoc</td></tr>
<tr><td><a class="pred" href="assoc.html#map_assoc/2">map_assoc/2</a></td><td>Test 
assoc values</td></tr>
<tr><td><a class="pred" href="assoc.html#map_assoc/3">map_assoc/3</a></td><td>Map 
assoc values</td></tr>
<tr><td><a class="pred" href="assoc.html#max_assoc/3">max_assoc/3</a></td><td>Max 
key-value of an assoc</td></tr>
<tr><td><a class="pred" href="assoc.html#min_assoc/3">min_assoc/3</a></td><td>Min 
key-value of an assoc</td></tr>
<tr><td><span class="pred-ext">ord_list_to_assoc/3</span></td><td>Translate 
ordered list into an assoc</td></tr>
<tr><td><a class="pred" href="assoc.html#put_assoc/4">put_assoc/4</a></td><td>Add 
association to an assoc</td></tr>
</table>

<p><h3 id="sec:summary-lib-broadcast"><a id="sec:F.2.4"><span class="sec-nr">F.2.4</span> <span class="sec-title">library(broadcast)</span></a></h3>

<a id="sec:summary-lib-broadcast"></a>
<table>
<tr><td><a class="pred" href="broadcast.html#broadcast/1">broadcast/1</a></td><td>Send 
event notification</td></tr>
<tr><td><a class="pred" href="broadcast.html#broadcast_request/1">broadcast_request/1</a></td><td>Request 
all agents</td></tr>
<tr><td><a class="pred" href="broadcast.html#listen/2">listen/2</a></td><td>Listen 
to event notifications</td></tr>
<tr><td><a class="pred" href="broadcast.html#listen/3">listen/3</a></td><td>Listen 
to event notifications</td></tr>
<tr><td><a class="pred" href="broadcast.html#unlisten/1">unlisten/1</a></td><td>Stop 
listening to event notifications</td></tr>
<tr><td><a class="pred" href="broadcast.html#unlisten/2">unlisten/2</a></td><td>Stop 
listening to event notifications</td></tr>
<tr><td><a class="pred" href="broadcast.html#unlisten/3">unlisten/3</a></td><td>Stop 
listening to event notifications</td></tr>
<tr><td><a class="pred" href="broadcast.html#listening/3">listening/3</a></td><td>Who 
is listening to event notifications?</td></tr>
</table>

<p><h3 id="sec:summary-lib-charsio"><a id="sec:F.2.5"><span class="sec-nr">F.2.5</span> <span class="sec-title">library(charsio)</span></a></h3>

<a id="sec:summary-lib-charsio"></a>
<table>
<tr><td><a class="pred" href="charsio.html#atom_to_chars/2">atom_to_chars/2</a></td><td>Convert 
Atom into a list of character codes.</td></tr>
<tr><td><a class="pred" href="charsio.html#atom_to_chars/3">atom_to_chars/3</a></td><td>Convert 
Atom into a difference list of character codes.</td></tr>
<tr><td><a class="pred" href="charsio.html#format_to_chars/3">format_to_chars/3</a></td><td>Use 
format/2 to write to a list of character codes.</td></tr>
<tr><td><a class="pred" href="charsio.html#format_to_chars/4">format_to_chars/4</a></td><td>Use 
format/2 to write to a difference list of character codes.</td></tr>
<tr><td><a class="pred" href="charsio.html#number_to_chars/2">number_to_chars/2</a></td><td>Convert 
Atom into a list of character codes.</td></tr>
<tr><td><a class="pred" href="charsio.html#number_to_chars/3">number_to_chars/3</a></td><td>Convert 
Number into a difference list of character codes.</td></tr>
<tr><td><a class="pred" href="charsio.html#open_chars_stream/2">open_chars_stream/2</a></td><td>Open 
Codes as an input stream.</td></tr>
<tr><td><a class="pred" href="charsio.html#read_from_chars/2">read_from_chars/2</a></td><td>Read 
Codes into Term.</td></tr>
<tr><td><a class="pred" href="charsio.html#read_term_from_chars/3">read_term_from_chars/3</a></td><td>Read 
Codes into Term.</td></tr>
<tr><td><a class="pred" href="charsio.html#with_output_to_chars/2">with_output_to_chars/2</a></td><td>Run 
Goal as with once/1.</td></tr>
<tr><td><a class="pred" href="charsio.html#with_output_to_chars/3">with_output_to_chars/3</a></td><td>Run 
Goal as with once/1.</td></tr>
<tr><td><a class="pred" href="charsio.html#with_output_to_chars/4">with_output_to_chars/4</a></td><td>Same 
as with_output_to_chars/3 using an explicit stream.</td></tr>
<tr><td><a class="pred" href="charsio.html#write_to_chars/2">write_to_chars/2</a></td><td>Write 
a term to a code list.</td></tr>
<tr><td><a class="pred" href="charsio.html#write_to_chars/3">write_to_chars/3</a></td><td>Write 
a term to a code list.</td></tr>
</table>

<p><h3 id="sec:summary-lib-check"><a id="sec:F.2.6"><span class="sec-nr">F.2.6</span> <span class="sec-title">library(check)</span></a></h3>

<a id="sec:summary-lib-check"></a>
<table>
<tr><td><a class="pred" href="check.html#check/0">check/0</a></td><td>Run 
all consistency checks defined by checker/2.</td></tr>
<tr><td><a class="pred" href="check.html#checker/2">checker/2</a></td><td>Register 
code validation routines.</td></tr>
<tr><td><a class="pred" href="check.html#list_autoload/0">list_autoload/0</a></td><td>Report 
predicates that may be auto-loaded.</td></tr>
<tr><td><a class="pred" href="check.html#list_redefined/0">list_redefined/0</a></td><td>Lists 
predicates that are defined in the global module =user= as well as in a 
normal module; that is, predicates for which the local definition 
overrules the global default definition.</td></tr>
<tr><td><a class="pred" href="strings.html#list_strings/0">list_strings/0</a></td><td>List 
strings that appear in clauses.</td></tr>
<tr><td><a class="pred" href="check.html#list_strings/1">list_strings/1</a></td><td>List 
strings that appear in clauses.</td></tr>
<tr><td><a class="pred" href="check.html#list_trivial_fails/0">list_trivial_fails/0</a></td><td>List 
goals that trivially fail because there is no matching clause.</td></tr>
<tr><td><a class="pred" href="check.html#list_trivial_fails/1">list_trivial_fails/1</a></td><td>List 
goals that trivially fail because there is no matching clause.</td></tr>
<tr><td><a class="pred" href="check.html#list_undefined/0">list_undefined/0</a></td><td>Report 
undefined predicates.</td></tr>
<tr><td><a class="pred" href="check.html#list_undefined/1">list_undefined/1</a></td><td>Report 
undefined predicates.</td></tr>
<tr><td><a class="pred" href="check.html#list_void_declarations/0">list_void_declarations/0</a></td><td>List 
predicates that have declared attributes, but no clauses.</td></tr>
<tr><td><a class="pred" href="check.html#string_predicate/1">string_predicate/1</a></td><td>Multifile 
hook to disable list_strings/0 on the given predicate.</td></tr>
<tr><td><a class="pred" href="check.html#trivial_fail_goal/1">trivial_fail_goal/1</a></td><td>Multifile 
hook that tells list_trivial_fails/0 to accept Goal as valid.</td></tr>
<tr><td><a class="pred" href="check.html#valid_string_goal/1">valid_string_goal/1</a></td><td>Multifile 
hook that qualifies Goal as valid for list_strings/0.</td></tr>
</table>

<p><h3 id="sec:summary-lib-csv"><a id="sec:F.2.7"><span class="sec-nr">F.2.7</span> <span class="sec-title">library(csv)</span></a></h3>

<a id="sec:summary-lib-csv"></a>
<table>
<tr><td><a class="pred" href="csv.html#csv_read_file/2">csv_read_file/2</a></td><td>Read 
a CSV file into a list of rows.</td></tr>
<tr><td><a class="pred" href="csv.html#csv_read_file/3">csv_read_file/3</a></td><td>Read 
a CSV file into a list of rows.</td></tr>
<tr><td><a class="pred" href="csv.html#csv_read_file_row/3">csv_read_file_row/3</a></td><td>True 
when Row is a row in File.</td></tr>
<tr><td><a class="pred" href="csv.html#csv_write_file/2">csv_write_file/2</a></td><td>Write 
a list of Prolog terms to a CSV file.</td></tr>
<tr><td><a class="pred" href="csv.html#csv_write_file/3">csv_write_file/3</a></td><td>Write 
a list of Prolog terms to a CSV file.</td></tr>
<tr><td><a class="pred" href="csv.html#csv_write_stream/3">csv_write_stream/3</a></td><td>Write 
the rows in Data to Stream.</td></tr>
<tr><td><a class="pred" href="csv.html#csv/3">csv/3</a></td><td>Prolog 
DCG to `read/write' CSV data.</td></tr>
<tr><td><a class="pred" href="csv.html#csv/4">csv/4</a></td><td>Prolog 
DCG to `read/write' CSV data.</td></tr>
</table>

<p><h3 id="sec:summary-lib-lists"><a id="sec:F.2.8"><span class="sec-nr">F.2.8</span> <span class="sec-title">library(lists)</span></a></h3>

<a id="sec:summary-lib-lists"></a>
<table>
<tr><td><a class="pred" href="lists.html#append/2">append/2</a></td><td>Concatenate 
a list of lists.</td></tr>
<tr><td><a class="pred" href="lists.html#append/3">append/3</a></td><td>List1AndList2 
is the concatenation of List1 and List2.</td></tr>
<tr><td><a class="pred" href="lists.html#delete/3">delete/3</a></td><td>Delete 
matching elements from a list.</td></tr>
<tr><td><a class="pred" href="lists.html#flatten/2">flatten/2</a></td><td>Is 
true if FlatList is a non-nested version of NestedList.</td></tr>
<tr><td><a class="pred" href="lists.html#intersection/3">intersection/3</a></td><td>True 
if Set3 unifies with the intersection of Set1 and Set2.</td></tr>
<tr><td><a class="pred" href="lists.html#is_set/1">is_set/1</a></td><td>True 
if Set is a proper list without duplicates.</td></tr>
<tr><td><a class="pred" href="lists.html#last/2">last/2</a></td><td>Succeeds 
when Last is the last element of List.</td></tr>
<tr><td><a class="pred" href="lists.html#list_to_set/2">list_to_set/2</a></td><td>True 
when Set has the same elements as List in the same order.</td></tr>
<tr><td><a class="pred" href="lists.html#max_list/2">max_list/2</a></td><td>True 
if Max is the largest number in List.</td></tr>
<tr><td><a class="pred" href="lists.html#max_member/2">max_member/2</a></td><td>True 
when Max is the largest member in the standard order of terms.</td></tr>
<tr><td><a class="pred" href="lists.html#member/2">member/2</a></td><td>True 
if Elem is a member of List.</td></tr>
<tr><td><a class="pred" href="lists.html#min_list/2">min_list/2</a></td><td>True 
if Min is the smallest number in List.</td></tr>
<tr><td><a class="pred" href="lists.html#min_member/2">min_member/2</a></td><td>True 
when Min is the smallest member in the standard order of terms.</td></tr>
<tr><td><a class="pred" href="lists.html#nextto/3">nextto/3</a></td><td>True 
if Y follows X in List.</td></tr>
<tr><td><a class="pred" href="lists.html#nth0/3">nth0/3</a></td><td>True 
when Elem is the Index'th element of List.</td></tr>
<tr><td><a class="pred" href="lists.html#nth0/4">nth0/4</a></td><td>Select/insert 
element at index.</td></tr>
<tr><td><a class="pred" href="lists.html#nth1/3">nth1/3</a></td><td>Is 
true when Elem is the Index'th element of List.</td></tr>
<tr><td><a class="pred" href="lists.html#nth1/4">nth1/4</a></td><td>As 
nth0/4, but counting starts at 1.</td></tr>
<tr><td><a class="pred" href="lists.html#numlist/3">numlist/3</a></td><td>List 
is a list [Low, Low+1, ... High].</td></tr>
<tr><td><a class="pred" href="lists.html#permutation/2">permutation/2</a></td><td>True 
when Xs is a permutation of Ys.</td></tr>
<tr><td><a class="pred" href="lists.html#prefix/2">prefix/2</a></td><td>True 
iff Part is a leading substring of Whole.</td></tr>
<tr><td><a class="pred" href="lists.html#proper_length/2">proper_length/2</a></td><td>True 
when Length is the number of elements in the proper list List.</td></tr>
<tr><td><a class="pred" href="lists.html#reverse/2">reverse/2</a></td><td>Is 
true when the elements of List2 are in reverse order compared to List1.</td></tr>
<tr><td><a class="pred" href="lists.html#same_length/2">same_length/2</a></td><td>Is 
true when List1 and List2 are lists with the same number of elements.</td></tr>
<tr><td><a class="pred" href="lists.html#select/3">select/3</a></td><td>Is 
true when List1, with Elem removed, results in List2.</td></tr>
<tr><td><a class="pred" href="lists.html#select/4">select/4</a></td><td>Select 
from two lists at the same positon.</td></tr>
<tr><td><a class="pred" href="lists.html#selectchk/3">selectchk/3</a></td><td>Semi-deterministic 
removal of first element in List that unifies with Elem.</td></tr>
<tr><td><a class="pred" href="lists.html#selectchk/4">selectchk/4</a></td><td>Semi-deterministic 
version of select/4.</td></tr>
<tr><td><a class="pred" href="lists.html#subset/2">subset/2</a></td><td>True 
if all elements of SubSet belong to Set as well.</td></tr>
<tr><td><a class="pred" href="lists.html#subtract/3">subtract/3</a></td><td>Delete 
all elements in Delete from Set.</td></tr>
<tr><td><a class="pred" href="lists.html#sum_list/2">sum_list/2</a></td><td>Sum 
is the result of adding all numbers in List.</td></tr>
<tr><td><a class="pred" href="lists.html#union/3">union/3</a></td><td>True 
if Set3 unifies with the union of Set1 and Set2.</td></tr>
</table>

<p><h3 id="sec:summary-lib-debug"><a id="sec:F.2.9"><span class="sec-nr">F.2.9</span> <span class="sec-title">library(debug)</span></a></h3>

<a id="sec:summary-lib-debug"></a>
<table>
<tr><td><a class="pred" href="debug.html#assertion/1">assertion/1</a></td><td>Acts 
similar to C assert() macro.</td></tr>
<tr><td><span class="pred-ext">assertion_failed/2</span></td><td>This 
hook is called if the Goal of assertion/1 fails.</td></tr>
<tr><td><a class="pred" href="debug.html#debug/1">debug/1</a></td><td>Add/remove 
a topic from being printed.</td></tr>
<tr><td><a class="pred" href="debug.html#debug/3">debug/3</a></td><td>Format 
a message if debug topic is enabled.</td></tr>
<tr><td><a class="pred" href="debug.html#debug_message_context/1">debug_message_context/1</a></td><td>Specify 
additional context for debug messages.</td></tr>
<tr><td><span class="pred-ext">debug_print_hook/3</span></td><td>Hook 
called by debug/3.</td></tr>
<tr><td><a class="pred" href="debug.html#debugging/1">debugging/1</a></td><td>Examine 
debug topics.</td></tr>
<tr><td><a class="pred" href="debug.html#debugging/2">debugging/2</a></td><td>Examine 
debug topics.</td></tr>
<tr><td><a class="pred" href="debug.html#list_debug_topics/0">list_debug_topics/0</a></td><td>List 
currently known debug topics and their setting.</td></tr>
<tr><td><a class="pred" href="debug.html#nodebug/1">nodebug/1</a></td><td>Add/remove 
a topic from being printed.</td></tr>
</table>

<p><h3 id="sec:summary-lib-iostream"><a id="sec:F.2.10"><span class="sec-nr">F.2.10</span> <span class="sec-title">library(iostream)</span></a></h3>

<a id="sec:summary-lib-iostream"></a>
<h3 id="sec:summary-lib-summaries.d-iostream-tex"><a id="sec:F.2.11"><span class="sec-nr">F.2.11</span> <span class="sec-title">library(summaries.d/iostream/tex)</span></a></h3>

<a id="sec:summary-lib-summaries.d-iostream-tex"></a>

<p><h3 id="sec:summary-lib-option"><a id="sec:F.2.12"><span class="sec-nr">F.2.12</span> <span class="sec-title">library(option)</span></a></h3>

<a id="sec:summary-lib-option"></a>
<table>
<tr><td><a class="pred" href="option.html#dict_options/2">dict_options/2</a></td><td>Convert 
between an option list and a dictionary.</td></tr>
<tr><td><a class="pred" href="option.html#merge_options/3">merge_options/3</a></td><td>Merge 
two option lists.</td></tr>
<tr><td><a class="pred" href="option.html#meta_options/3">meta_options/3</a></td><td>Perform 
meta-expansion on options that are module-sensitive.</td></tr>
<tr><td><a class="pred" href="option.html#option/2">option/2</a></td><td>Get 
an Option from OptionList.</td></tr>
<tr><td><a class="pred" href="option.html#option/3">option/3</a></td><td>Get 
an Option Qfrom OptionList.</td></tr>
<tr><td><a class="pred" href="option.html#select_option/3">select_option/3</a></td><td>Get 
and remove Option from an option list.</td></tr>
<tr><td><a class="pred" href="option.html#select_option/4">select_option/4</a></td><td>Get 
and remove Option with default value.</td></tr>
</table>

<p><h3 id="sec:summary-lib-optparse"><a id="sec:F.2.13"><span class="sec-nr">F.2.13</span> <span class="sec-title">library(optparse)</span></a></h3>

<a id="sec:summary-lib-optparse"></a>
<table>
<tr><td><a class="pred" href="optparse.html#opt_arguments/3">opt_arguments/3</a></td><td>Extract 
commandline options according to a specification.</td></tr>
<tr><td><a class="pred" href="optparse.html#opt_help/2">opt_help/2</a></td><td>True 
when Help is a help string synthesized from OptsSpec.</td></tr>
<tr><td><a class="pred" href="optparse.html#opt_parse/4">opt_parse/4</a></td><td>Equivalent 
to opt_parse(OptsSpec, ApplArgs, Opts, PositionalArgs, []).</td></tr>
<tr><td><a class="pred" href="optparse.html#opt_parse/5">opt_parse/5</a></td><td>Parse 
the arguments Args (as list of atoms) according to OptsSpec.</td></tr>
<tr><td><a class="pred" href="optparse.html#parse_type/3">parse_type/3</a></td><td>Hook 
to parse option text Codes to an object of type Type.</td></tr>
</table>

<p><h3 id="sec:summary-lib-ordsets"><a id="sec:F.2.14"><span class="sec-nr">F.2.14</span> <span class="sec-title">library(ordsets)</span></a></h3>

<a id="sec:summary-lib-ordsets"></a>
<table>
<tr><td><a class="pred" href="ordsets.html#is_ordset/1">is_ordset/1</a></td><td>True 
if Term is an ordered set.</td></tr>
<tr><td><a class="pred" href="ordsets.html#list_to_ord_set/2">list_to_ord_set/2</a></td><td>Transform 
a list into an ordered set.</td></tr>
<tr><td><a class="pred" href="ordsets.html#ord_add_element/3">ord_add_element/3</a></td><td>Insert 
an element into the set.</td></tr>
<tr><td><a class="pred" href="ordsets.html#ord_del_element/3">ord_del_element/3</a></td><td>Delete 
an element from an ordered set.</td></tr>
<tr><td><a class="pred" href="ordsets.html#ord_disjoint/2">ord_disjoint/2</a></td><td>True 
if Set1 and Set2 have no common elements.</td></tr>
<tr><td><a class="pred" href="ordsets.html#ord_empty/1">ord_empty/1</a></td><td>True 
when List is the empty ordered set.</td></tr>
<tr><td><a class="pred" href="ordsets.html#ord_intersect/2">ord_intersect/2</a></td><td>True 
if both ordered sets have a non-empty intersection.</td></tr>
<tr><td><a class="pred" href="ordsets.html#ord_intersect/3">ord_intersect/3</a></td><td>Intersection 
holds the common elements of Set1 and Set2.</td></tr>
<tr><td><a class="pred" href="ordsets.html#ord_intersection/2">ord_intersection/2</a></td><td>Intersection 
of a powerset.</td></tr>
<tr><td><a class="pred" href="ordsets.html#ord_intersection/3">ord_intersection/3</a></td><td>Intersection 
holds the common elements of Set1 and Set2.</td></tr>
<tr><td><a class="pred" href="ordsets.html#ord_intersection/4">ord_intersection/4</a></td><td>Intersection 
and difference between two ordered sets.</td></tr>
<tr><td><a class="pred" href="ordsets.html#ord_memberchk/2">ord_memberchk/2</a></td><td>True 
if Element is a member of OrdSet, compared using ==.</td></tr>
<tr><td><a class="pred" href="ordsets.html#ord_selectchk/3">ord_selectchk/3</a></td><td>Selectchk/3, 
specialised for ordered sets.</td></tr>
<tr><td><a class="pred" href="ordsets.html#ord_seteq/2">ord_seteq/2</a></td><td>True 
if Set1 and Set2 have the same elements.</td></tr>
<tr><td><a class="pred" href="ordsets.html#ord_subset/2">ord_subset/2</a></td><td>Is 
true if all elements of Sub are in Super.</td></tr>
<tr><td><a class="pred" href="ordsets.html#ord_subtract/3">ord_subtract/3</a></td><td>Diff 
is the set holding all elements of InOSet that are not in NotInOSet.</td></tr>
<tr><td><a class="pred" href="ordsets.html#ord_symdiff/3">ord_symdiff/3</a></td><td>Is 
true when Difference is the symmetric difference of Set1 and Set2.</td></tr>
<tr><td><a class="pred" href="ordsets.html#ord_union/2">ord_union/2</a></td><td>True 
if Union is the union of all elements in the superset SetOfSets.</td></tr>
<tr><td><a class="pred" href="ordsets.html#ord_union/3">ord_union/3</a></td><td>Union 
is the union of Set1 and Set2.</td></tr>
<tr><td><a class="pred" href="ordsets.html#ord_union/4">ord_union/4</a></td><td>True 
iff ord_union(Set1, Set2, Union) and ord_subtract(Set2, Set1, New).</td></tr>
</table>

<p><h3 id="sec:summary-lib-persistency"><a id="sec:F.2.15"><span class="sec-nr">F.2.15</span> <span class="sec-title">library(persistency)</span></a></h3>

<a id="sec:summary-lib-persistency"></a>
<table>
<tr><td><a class="pred" href="persistency.html#current_persistent_predicate/1">current_persistent_predicate/1</a></td><td>True 
if PI is a predicate that provides access to the persistent database DB.</td></tr>
<tr><td><a class="pred" href="persistency.html#db_attach/2">db_attach/2</a></td><td>Use 
File as persistent database for the calling module.</td></tr>
<tr><td><a class="pred" href="persistency.html#db_sync/1">db_sync/1</a></td><td>Synchronise 
database with the associated file.</td></tr>
<tr><td><a class="pred" href="persistency.html#db_sync_all/1">db_sync_all/1</a></td><td>Sync 
all registered databases.</td></tr>
<tr><td><a class="pred" href="persistency.html#persistent/1">persistent/1</a></td><td>Declare 
dynamic database terms.</td></tr>
</table>

<p><h3 id="sec:summary-lib-predicate_options"><a id="sec:F.2.16"><span class="sec-nr">F.2.16</span> <span class="sec-title">library(predicate_options)</span></a></h3>

<a id="sec:summary-lib-predicate_options"></a>
<table>
<tr><td><a class="pred" href="predicate_options.html#assert_predicate_options/4">assert_predicate_options/4</a></td><td>As 
predicate_options(:PI, +Arg, +Options).</td></tr>
<tr><td><a class="pred" href="predicate_options.html#check_predicate_option/3">check_predicate_option/3</a></td><td>Verify 
predicate options at runtime.</td></tr>
<tr><td><a class="pred" href="predicate_options.html#check_predicate_options/0">check_predicate_options/0</a></td><td>Analyse 
loaded program for erroneous options.</td></tr>
<tr><td><a class="pred" href="predicate_options.html#current_option_arg/2">current_option_arg/2</a></td><td>True 
when Arg of PI processes predicate options.</td></tr>
<tr><td><a class="pred" href="predicate_options.html#current_predicate_option/3">current_predicate_option/3</a></td><td>True 
when Arg of PI processes Option.</td></tr>
<tr><td><a class="pred" href="predicate_options.html#current_predicate_options/3">current_predicate_options/3</a></td><td>True 
when Options is the current active option declaration for PI on Arg.</td></tr>
<tr><td><a class="pred" href="predicate_options.html#derive_predicate_options/0">derive_predicate_options/0</a></td><td>Derive 
new predicate option declarations.</td></tr>
<tr><td><a class="pred" href="predicate_options.html#derived_predicate_options/1">derived_predicate_options/1</a></td><td>Derive 
predicate option declarations for a module.</td></tr>
<tr><td><a class="pred" href="predicate_options.html#derived_predicate_options/3">derived_predicate_options/3</a></td><td>Derive 
option arguments using static analysis.</td></tr>
<tr><td><a class="pred" href="predicate_options.html#predicate_options/3">predicate_options/3</a></td><td>Declare 
that the predicate PI processes options on Arg.</td></tr>
<tr><td><a class="pred" href="predicate_options.html#retractall_predicate_options/0">retractall_predicate_options/0</a></td><td>Remove 
all dynamically (derived) predicate options.</td></tr>
</table>

<p><h3 id="sec:summary-lib-prologpack"><a id="sec:F.2.17"><span class="sec-nr">F.2.17</span> <span class="sec-title">library(prologpack)</span></a></h3>

<a id="sec:summary-lib-prologpack"></a>
<table>
<tr><td><a class="pred" href="prologpack.html#environment/2">environment/2</a></td><td>Hook 
to define the environment for building packs.</td></tr>
<tr><td><a class="pred" href="prologpack.html#pack_info/1">pack_info/1</a></td><td>Print 
more detailed information about Pack.</td></tr>
<tr><td><a class="pred" href="prologpack.html#pack_install/1">pack_install/1</a></td><td>Install 
a package.</td></tr>
<tr><td><a class="pred" href="prologpack.html#pack_install/2">pack_install/2</a></td><td>Install 
package Name.</td></tr>
<tr><td><a class="pred" href="prologpack.html#pack_list/1">pack_list/1</a></td><td>Query 
package server and installed packages and display results.</td></tr>
<tr><td><a class="pred" href="prologpack.html#pack_list_installed/0">pack_list_installed/0</a></td><td>List 
currently installed packages.</td></tr>
<tr><td><a class="pred" href="prologpack.html#pack_property/2">pack_property/2</a></td><td>True 
when Property is a property of Pack.</td></tr>
<tr><td><a class="pred" href="prologpack.html#pack_rebuild/0">pack_rebuild/0</a></td><td>Rebuild 
foreign components of all packages.</td></tr>
<tr><td><a class="pred" href="prologpack.html#pack_rebuild/1">pack_rebuild/1</a></td><td>Rebuilt 
possible foreign components of Pack.</td></tr>
<tr><td><a class="pred" href="prologpack.html#pack_remove/1">pack_remove/1</a></td><td>Remove 
the indicated package.</td></tr>
<tr><td><a class="pred" href="prologpack.html#pack_search/1">pack_search/1</a></td><td>Query 
package server and installed packages and display results.</td></tr>
<tr><td><a class="pred" href="prologpack.html#pack_upgrade/1">pack_upgrade/1</a></td><td>Try 
to upgrade the package Pack.</td></tr>
<tr><td><a class="pred" href="prologpack.html#pack_url_file/2">pack_url_file/2</a></td><td>True 
if File is a unique id for the referenced pack and version.</td></tr>
</table>

<p><h3 id="sec:summary-lib-prologxref"><a id="sec:F.2.18"><span class="sec-nr">F.2.18</span> <span class="sec-title">library(prologxref)</span></a></h3>

<a id="sec:summary-lib-prologxref"></a>
<table>
<tr><td><a class="pred" href="prolog_xref.html#prolog:called_by/2">prolog:called_by/2</a></td><td><i>(hook)</i> 
Extend cross-referencer</td></tr>
<tr><td><a class="pred" href="prolog_xref.html#xref_built_in/1">xref_built_in/1</a></td><td>Examine 
defined built-ins</td></tr>
<tr><td><a class="pred" href="prolog_xref.html#xref_called/3">xref_called/3</a></td><td>Examine 
called predicates</td></tr>
<tr><td><a class="pred" href="prolog_xref.html#xref_clean/1">xref_clean/1</a></td><td>Remove 
analysis of source</td></tr>
<tr><td><a class="pred" href="prolog_xref.html#xref_current_source/1">xref_current_source/1</a></td><td>Examine 
cross-referenced sources</td></tr>
<tr><td><a class="pred" href="prolog_xref.html#xref_defined/3">xref_defined/3</a></td><td>Examine 
defined predicates</td></tr>
<tr><td><a class="pred" href="prolog_xref.html#xref_exported/2">xref_exported/2</a></td><td>Examine 
exported predicates</td></tr>
<tr><td><a class="pred" href="prolog_xref.html#xref_module/2">xref_module/2</a></td><td>Module 
defined by source</td></tr>
<tr><td><a class="pred" href="prolog_xref.html#xref_source/1">xref_source/1</a></td><td>Cross-reference 
analysis of source</td></tr>
</table>

<p><h3 id="sec:summary-lib-pairs"><a id="sec:F.2.19"><span class="sec-nr">F.2.19</span> <span class="sec-title">library(pairs)</span></a></h3>

<a id="sec:summary-lib-pairs"></a>
<table>
<tr><td><a class="pred" href="pairs.html#group_pairs_by_key/2">group_pairs_by_key/2</a></td><td>Group 
values with the same key.</td></tr>
<tr><td><a class="pred" href="pairs.html#map_list_to_pairs/3">map_list_to_pairs/3</a></td><td>Create 
a Key-Value list by mapping each element of List.</td></tr>
<tr><td><a class="pred" href="pairs.html#pairs_keys/2">pairs_keys/2</a></td><td>Remove 
the values from a list of Key-Value pairs.</td></tr>
<tr><td><a class="pred" href="pairs.html#pairs_keys_values/3">pairs_keys_values/3</a></td><td>True 
if Keys holds the keys of Pairs and Values the values.</td></tr>
<tr><td><a class="pred" href="pairs.html#pairs_values/2">pairs_values/2</a></td><td>Remove 
the keys from a list of Key-Value pairs.</td></tr>
<tr><td><a class="pred" href="pairs.html#transpose_pairs/2">transpose_pairs/2</a></td><td>Swap 
Key-Value to Value-Key.</td></tr>
</table>

<p><h3 id="sec:summary-lib-pio"><a id="sec:F.2.20"><span class="sec-nr">F.2.20</span> <span class="sec-title">library(pio)</span></a></h3>

<a id="sec:summary-lib-pio"></a>
<h4 id="sec:summary-lib-pure-input"><a id="sec:F.2.20.1"><span class="sec-nr">F.2.20.1</span> <span class="sec-title">library(pure_input)</span></a></h4>

<a id="sec:summary-lib-pure-input"></a>
<table>
<tr><td><a class="pred" href="pio.html#phrase_from_file/2">phrase_from_file/2</a></td><td>Process 
the content of File using the DCG rule Grammar.</td></tr>
<tr><td><a class="pred" href="pio.html#phrase_from_file/3">phrase_from_file/3</a></td><td>As 
phrase_from_file/2, providing additional Options.</td></tr>
<tr><td><a class="pred" href="pio.html#phrase_from_stream/2">phrase_from_stream/2</a></td><td>Helper 
for phrase_from_file/3.</td></tr>
<tr><td><a class="pred" href="pio.html#stream_to_lazy_list/2">stream_to_lazy_list/2</a></td><td>Create 
a lazy list representing the character codes in Stream.</td></tr>
<tr><td><a class="pred" href="pio.html#lazy_list_character_count/3">lazy_list_character_count/3</a></td><td>True 
when CharCount is the current character count in the Lazy list.</td></tr>
<tr><td><a class="pred" href="pio.html#lazy_list_location/3">lazy_list_location/3</a></td><td>Determine 
current (error) location in a lazy list.</td></tr>
<tr><td><a class="pred" href="pio.html#syntax_error/3">syntax_error/3</a></td><td>Throw 
the syntax error Error at the current location of the input.</td></tr>
</table>

<p><h3 id="sec:summary-lib-random"><a id="sec:F.2.21"><span class="sec-nr">F.2.21</span> <span class="sec-title">library(random)</span></a></h3>

<a id="sec:summary-lib-random"></a>
<table>
<tr><td><a class="pred" href="random.html#getrand/1">getrand/1</a></td><td>Query/set 
the state of the random generator.</td></tr>
<tr><td><a class="pred" href="random.html#maybe/0">maybe/0</a></td><td>Succeed/fail 
with equal probability (variant of maybe/1).</td></tr>
<tr><td><a class="pred" href="random.html#maybe/1">maybe/1</a></td><td>Succeed 
with probability P, fail with probability 1-P.</td></tr>
<tr><td><a class="pred" href="random.html#maybe/2">maybe/2</a></td><td>Succeed 
with probability K/N (variant of maybe/1).</td></tr>
<tr><td><a class="pred" href="random.html#random/1">random/1</a></td><td>Binds 
R to a new random float in the _open_ interval (0.0,1.0).</td></tr>
<tr><td><a class="pred" href="random.html#random/3">random/3</a></td><td>Generate 
a random integer or float in a range.</td></tr>
<tr><td><a class="pred" href="random.html#random_between/3">random_between/3</a></td><td>Binds 
R to a random integer in [L,U] (i.e., including both L and U).</td></tr>
<tr><td><a class="pred" href="random.html#random_member/2">random_member/2</a></td><td>X 
is a random member of List.</td></tr>
<tr><td><a class="pred" href="random.html#random_perm2/4">random_perm2/4</a></td><td>Does 
X=A,Y=B or X=B,Y=A with equal probability.</td></tr>
<tr><td><a class="pred" href="random.html#random_permutation/2">random_permutation/2</a></td><td>Permutation 
is a random permutation of List.</td></tr>
<tr><td><a class="pred" href="random.html#random_select/3">random_select/3</a></td><td>Randomly 
select or insert an element.</td></tr>
<tr><td><a class="pred" href="random.html#randseq/3">randseq/3</a></td><td>S 
is a list of K unique random integers in the range 1..N.</td></tr>
<tr><td><a class="pred" href="random.html#randset/3">randset/3</a></td><td>S 
is a sorted list of K unique random integers in the range 1..N.</td></tr>
<tr><td><a class="pred" href="random.html#setrand/1">setrand/1</a></td><td>Query/set 
the state of the random generator.</td></tr>
</table>

<p><h3 id="sec:summary-lib-readutil"><a id="sec:F.2.22"><span class="sec-nr">F.2.22</span> <span class="sec-title">library(readutil)</span></a></h3>

<a id="sec:summary-lib-readutil"></a>
<table>
<tr><td><a class="pred" href="readutil.html#read_line_to_codes/2">read_line_to_codes/2</a></td><td>Read 
line from a stream</td></tr>
<tr><td><a class="pred" href="readutil.html#read_line_to_codes/3">read_line_to_codes/3</a></td><td>Read 
line from a stream</td></tr>
<tr><td><a class="pred" href="readutil.html#read_stream_to_codes/2">read_stream_to_codes/2</a></td><td>Read 
contents of stream</td></tr>
<tr><td><a class="pred" href="readutil.html#read_stream_to_codes/3">read_stream_to_codes/3</a></td><td>Read 
contents of stream</td></tr>
<tr><td><a class="pred" href="readutil.html#read_file_to_codes/3">read_file_to_codes/3</a></td><td>Read 
contents of file</td></tr>
<tr><td><a class="pred" href="readutil.html#read_file_to_terms/3">read_file_to_terms/3</a></td><td>Read 
contents of file to Prolog terms</td></tr>
</table>

<p><h3 id="sec:summary-lib-record"><a id="sec:F.2.23"><span class="sec-nr">F.2.23</span> <span class="sec-title">library(record)</span></a></h3>

<a id="sec:summary-lib-record"></a>
<table>
<tr><td><a class="pred" href="record.html#record/1">record/1</a></td><td>Define 
named fields in a term</td></tr>
</table>

<p><h3 id="sec:summary-lib-registry"><a id="sec:F.2.24"><span class="sec-nr">F.2.24</span> <span class="sec-title">library(registry)</span></a></h3>

<a id="sec:summary-lib-registry"></a>

<p>This library is only available on Windows systems.
<table>
<tr><td><a class="pred" href="registry.html#registry_get_key/2">registry_get_key/2</a></td><td>Get 
principal value of key</td></tr>
<tr><td><a class="pred" href="registry.html#registry_get_key/3">registry_get_key/3</a></td><td>Get 
associated value of key</td></tr>
<tr><td><a class="pred" href="registry.html#registry_set_key/2">registry_set_key/2</a></td><td>Set 
principal value of key</td></tr>
<tr><td><a class="pred" href="registry.html#registry_set_key/3">registry_set_key/3</a></td><td>Set 
associated value of key</td></tr>
<tr><td><a class="pred" href="registry.html#registry_delete_key/1">registry_delete_key/1</a></td><td>Remove 
a key</td></tr>
<tr><td><a class="pred" href="registry.html#shell_register_file_type/4">shell_register_file_type/4</a></td><td>Register 
a file-type</td></tr>
<tr><td><a class="pred" href="registry.html#shell_register_dde/6">shell_register_dde/6</a></td><td>Register 
DDE action</td></tr>
<tr><td><a class="pred" href="registry.html#shell_register_prolog/1">shell_register_prolog/1</a></td><td>Register 
Prolog</td></tr>
</table>

<p><h3 id="sec:summary-lib-ugraphs"><a id="sec:F.2.25"><span class="sec-nr">F.2.25</span> <span class="sec-title">library(ugraphs)</span></a></h3>

<a id="sec:summary-lib-ugraphs"></a>
<table>
<tr><td><a class="pred" href="ugraphs.html#vertices_edges_to_ugraph/3">vertices_edges_to_ugraph/3</a></td><td>Create 
unweighted graph</td></tr>
<tr><td><a class="pred" href="ugraphs.html#vertices/2">vertices/2</a></td><td>Find 
vertices in graph</td></tr>
<tr><td><a class="pred" href="ugraphs.html#edges/2">edges/2</a></td><td>Find 
edges in graph</td></tr>
<tr><td><a class="pred" href="ugraphs.html#add_vertices/3">add_vertices/3</a></td><td>Add 
vertices to graph</td></tr>
<tr><td><a class="pred" href="ugraphs.html#del_vertices/3">del_vertices/3</a></td><td>Delete 
vertices from graph</td></tr>
<tr><td><a class="pred" href="ugraphs.html#add_edges/3">add_edges/3</a></td><td>Add 
edges to graph</td></tr>
<tr><td><a class="pred" href="ugraphs.html#del_edges/3">del_edges/3</a></td><td>Delete 
edges from graph</td></tr>
<tr><td><a class="pred" href="clpfd.html#transpose/2">transpose/2</a></td><td>Invert 
the direction of all edges</td></tr>
<tr><td><a class="pred" href="ugraphs.html#neighbors/3">neighbors/3</a></td><td>Find 
neighbors of vertice</td></tr>
<tr><td><a class="pred" href="ugraphs.html#neighbours/3">neighbours/3</a></td><td>Find 
neighbors of vertice</td></tr>
<tr><td><a class="pred" href="ugraphs.html#complement/2">complement/2</a></td><td>Inverse 
presense of edges</td></tr>
<tr><td><a class="pred" href="ugraphs.html#compose/3">compose/3</a></td><td></td></tr>
<tr><td><a class="pred" href="ugraphs.html#top_sort/2">top_sort/2</a></td><td>Sort 
graph topologically</td></tr>
<tr><td><a class="pred" href="ugraphs.html#top_sort/3">top_sort/3</a></td><td>Sort 
graph topologically</td></tr>
<tr><td><a class="pred" href="ugraphs.html#transitive_closure/2">transitive_closure/2</a></td><td>Create 
transitive closure of graph</td></tr>
<tr><td><a class="pred" href="ugraphs.html#reachable/3">reachable/3</a></td><td>Find 
all reachable vertices</td></tr>
<tr><td><a class="pred" href="ugraphs.html#ugraph_union/3">ugraph_union/3</a></td><td>Union 
of two graphs</td></tr>
</table>

<p><h3 id="sec:summary-lib-url"><a id="sec:F.2.26"><span class="sec-nr">F.2.26</span> <span class="sec-title">library(url)</span></a></h3>

<a id="sec:summary-lib-url"></a>
<table>
<tr><td><a class="pred" href="url.html#file_name_to_url/2">file_name_to_url/2</a></td><td>Translate 
between a filename and a file:<code>//</code> URL.</td></tr>
<tr><td><a class="pred" href="url.html#global_url/3">global_url/3</a></td><td>Translate 
a possibly relative URL into an absolute one.</td></tr>
<tr><td><a class="pred" href="url.html#http_location/2">http_location/2</a></td><td>Construct 
or analyze an HTTP location.</td></tr>
<tr><td><a class="pred" href="url.html#is_absolute_url/1">is_absolute_url/1</a></td><td>True 
if URL is an absolute URL.</td></tr>
<tr><td><a class="pred" href="url.html#parse_url/2">parse_url/2</a></td><td>Construct 
or analyse a URL.</td></tr>
<tr><td><a class="pred" href="url.html#parse_url/3">parse_url/3</a></td><td>Similar 
to parse_url/2 for relative URLs.</td></tr>
<tr><td><a class="pred" href="url.html#parse_url_search/2">parse_url_search/2</a></td><td>Construct 
or analyze an HTTP search specification.</td></tr>
<tr><td><a class="pred" href="url.html#set_url_encoding/2">set_url_encoding/2</a></td><td>Query 
and set the encoding for URLs.</td></tr>
<tr><td><a class="pred" href="url.html#url_iri/2">url_iri/2</a></td><td>Convert 
between a URL, encoding in US-ASCII and an IRI.</td></tr>
<tr><td><a class="pred" href="url.html#www_form_encode/2">www_form_encode/2</a></td><td>En/decode 
to/from application/x-www-form-encoded.</td></tr>
</table>

<p><h3 id="sec:summary-lib-www_browser"><a id="sec:F.2.27"><span class="sec-nr">F.2.27</span> <span class="sec-title">library(www_browser)</span></a></h3>

<a id="sec:summary-lib-www_browser"></a>
<table>
<tr><td><a class="pred" href="www_browser.html#www_open_url/1">www_open_url/1</a></td><td>Open 
a web-page in a browser</td></tr>
</table>

<p><h3 id="sec:summary-lib-clp-clpb"><a id="sec:F.2.28"><span class="sec-nr">F.2.28</span> <span class="sec-title">library(clp/clpb)</span></a></h3>

<a id="sec:summary-lib-clp-clpb"></a>
<table>
<tr><td><a class="pred" href="clpb.html#labeling/1">labeling/1</a></td><td>Assigns 
truth values to the Boolean variables Vs such that all stated 
constraints are satisfied.</td></tr>
<tr><td><a class="pred" href="clpb.html#sat/1">sat/1</a></td><td>True 
iff Expr is a satisfiable Boolean expression.</td></tr>
<tr><td><a class="pred" href="clpb.html#sat_count/2">sat_count/2</a></td><td>N 
is the number of different assignments of truth values to the variables 
in the Boolean expression Expr, such that Expr is true and all posted 
constraints are satisfiable.</td></tr>
<tr><td><a class="pred" href="clpb.html#taut/2">taut/2</a></td><td>Succeeds 
with T = 0 if the Boolean expression Expr cannot be satisfied, and with 
T = 1 if Expr is always true with respect to the current constraints.</td></tr>
</table>

<p><h3 id="sec:summary-lib-clp-clpfd"><a id="sec:F.2.29"><span class="sec-nr">F.2.29</span> <span class="sec-title">library(clp/clpfd)</span></a></h3>

<a id="sec:summary-lib-clp-clpfd"></a>
<table>
<tr><td><a class="pred" href="clpfd.html##/\/2">#/\/2</a></td><td>P and 
Q hold.</td></tr>
<tr><td><a class="pred" href="clpfd.html##</2">#&lt;/2</a></td><td>X is 
less than Y.</td></tr>
<tr><td><a class="pred" href="clpfd.html##<==/2">#&lt;==/2</a></td><td>Q 
implies P.</td></tr>
<tr><td><a class="pred" href="clpfd.html##<==>/2">#&lt;==&gt;/2</a></td><td>P 
and Q are equivalent.</td></tr>
<tr><td><a class="pred" href="clpfd.html##=/2">#=/2</a></td><td>X equals 
Y.</td></tr>
<tr><td><a class="pred" href="clpfd.html##=</2">#=&lt;/2</a></td><td>X 
is less than or equal to Y.</td></tr>
<tr><td><a class="pred" href="clpfd.html##==>/2">#==&gt;/2</a></td><td>P 
implies Q.</td></tr>
<tr><td><a class="pred" href="clpfd.html##>/2">#&gt;/2</a></td><td>X is 
greater than Y.</td></tr>
<tr><td><a class="pred" href="clpfd.html##>=/2">#&gt;=/2</a></td><td>X 
is greater than or equal to Y.</td></tr>
<tr><td><a class="pred" href="clpfd.html##\/1">#\/1</a></td><td>The 
reifiable constraint Q does _not_ hold.</td></tr>
<tr><td><a class="pred" href="clpfd.html##\/2">#\/2</a></td><td>Either P 
holds or Q holds, but not both.</td></tr>
<tr><td><a class="pred" href="clpfd.html##\//2">#\//2</a></td><td>P or Q 
holds.</td></tr>
<tr><td><a class="pred" href="clpfd.html##\=/2">#\=/2</a></td><td>X is 
not Y.</td></tr>
<tr><td><a class="pred" href="clpfd.html#all_different/1">all_different/1</a></td><td>Vars 
are pairwise distinct.</td></tr>
<tr><td><a class="pred" href="clpfd.html#all_distinct/1">all_distinct/1</a></td><td>Like 
all_different/1, with stronger propagation.</td></tr>
<tr><td><a class="pred" href="clpfd.html#automaton/3">automaton/3</a></td><td>Describes 
a list of finite domain variables with a finite automaton.</td></tr>
<tr><td><a class="pred" href="clpfd.html#automaton/8">automaton/8</a></td><td>Describes 
a list of finite domain variables with a finite automaton.</td></tr>
<tr><td><a class="pred" href="clpfd.html#chain/2">chain/2</a></td><td>Zs 
form a chain with respect to Relation.</td></tr>
<tr><td><a class="pred" href="clpfd.html#circuit/1">circuit/1</a></td><td>True 
iff the list Vs of finite domain variables induces a Hamiltonian 
circuit.</td></tr>
<tr><td><a class="pred" href="clpfd.html#cumulative/1">cumulative/1</a></td><td>Equivalent 
to cumulative(Tasks, [limit(1)]).</td></tr>
<tr><td><a class="pred" href="clpfd.html#cumulative/2">cumulative/2</a></td><td>Schedule 
with a limited resource.</td></tr>
<tr><td><a class="pred" href="clpfd.html#disjoint2/1">disjoint2/1</a></td><td>True 
iff Rectangles are not overlapping.</td></tr>
<tr><td><a class="pred" href="clpfd.html#element/3">element/3</a></td><td>The 
N-th element of the list of finite domain variables Vs is V.</td></tr>
<tr><td><a class="pred" href="clpfd.html#fd_dom/2">fd_dom/2</a></td><td>Dom 
is the current domain (see in/2) of Var.</td></tr>
<tr><td><a class="pred" href="clpfd.html#fd_inf/2">fd_inf/2</a></td><td>Inf 
is the infimum of the current domain of Var.</td></tr>
<tr><td><a class="pred" href="clpfd.html#fd_size/2">fd_size/2</a></td><td>Size 
is the number of elements of the current domain of Var, or the atom 
*sup* if the domain is unbounded.</td></tr>
<tr><td><a class="pred" href="clpfd.html#fd_sup/2">fd_sup/2</a></td><td>Sup 
is the supremum of the current domain of Var.</td></tr>
<tr><td><a class="pred" href="clpfd.html#fd_var/1">fd_var/1</a></td><td>True 
iff Var is a CLP(FD) variable.</td></tr>
<tr><td><a class="pred" href="clpfd.html#global_cardinality/2">global_cardinality/2</a></td><td>Global 
Cardinality constraint.</td></tr>
<tr><td><a class="pred" href="clpfd.html#global_cardinality/3">global_cardinality/3</a></td><td>Global 
Cardinality constraint.</td></tr>
<tr><td><a class="pred" href="clpfd.html#in/2">in/2</a></td><td>Var is 
an element of Domain.</td></tr>
<tr><td><a class="pred" href="clpfd.html#indomain/1">indomain/1</a></td><td>Bind 
Var to all feasible values of its domain on backtracking.</td></tr>
<tr><td><a class="pred" href="clpfd.html#ins/2">ins/2</a></td><td>The 
variables in the list Vars are elements of Domain.</td></tr>
<tr><td><a class="pred" href="clpfd.html#label/1">label/1</a></td><td>Equivalent 
to labeling([], Vars).</td></tr>
<tr><td><a class="pred" href="clpfd.html#labeling/2">labeling/2</a></td><td>Assign 
a value to each variable in Vars.</td></tr>
<tr><td><a class="pred" href="clpfd.html#lex_chain/1">lex_chain/1</a></td><td>Lists 
are lexicographically non-decreasing.</td></tr>
<tr><td><a class="pred" href="clpfd.html#scalar_product/4">scalar_product/4</a></td><td>True 
iff the scalar product of Cs and Vs is in relation Rel to Expr.</td></tr>
<tr><td><a class="pred" href="clpfd.html#serialized/2">serialized/2</a></td><td>Describes 
a set of non-overlapping tasks.</td></tr>
<tr><td><a class="pred" href="clpfd.html#sum/3">sum/3</a></td><td>The 
sum of elements of the list Vars is in relation Rel to Expr.</td></tr>
<tr><td><a class="pred" href="clpfd.html#transpose/2">transpose/2</a></td><td>Transpose 
a list of lists of the same length.</td></tr>
<tr><td><a class="pred" href="clpfd.html#tuples_in/2">tuples_in/2</a></td><td>True 
iff all Tuples are elements of Relation.</td></tr>
<tr><td><a class="pred" href="clpfd.html#zcompare/3">zcompare/3</a></td><td>Analogous 
to compare/3, with finite domain variables A and B.</td></tr>
</table>

<p><h3 id="sec:summary-lib-clpqr"><a id="sec:F.2.30"><span class="sec-nr">F.2.30</span> <span class="sec-title">library(clpqr)</span></a></h3>

<a id="sec:summary-lib-clpqr"></a>
<table>
<tr><td><a class="pred" href="clpqr.html#entailed/1">entailed/1</a></td><td>Check 
if constraint is entailed</td></tr>
<tr><td><a class="pred" href="clpqr.html#inf/2">inf/2</a></td><td>Find 
the infimum of an expression</td></tr>
<tr><td><a class="pred" href="clpqr.html#sup/2">sup/2</a></td><td>Find 
the supremum of an expression</td></tr>
<tr><td><a class="pred" href="clpqr.html#minimize/1">minimize/1</a></td><td>Minimizes 
an expression</td></tr>
<tr><td><a class="pred" href="clpqr.html#maximize/1">maximize/1</a></td><td>Maximizes 
an expression</td></tr>
<tr><td><a class="pred" href="clpqr.html#bb_inf/3">bb_inf/3</a></td><td>Infimum 
of expression for mixed-integer problems</td></tr>
<tr><td><a class="pred" href="clpqr.html#bb_inf/4">bb_inf/4</a></td><td>Infimum 
of expression for mixed-integer problems</td></tr>
<tr><td><a class="pred" href="clpqr.html#bb_inf/5">bb_inf/5</a></td><td>Infimum 
of expression for mixed-integer problems</td></tr>
<tr><td><a class="pred" href="clpqr.html#dump/3">dump/3</a></td><td>Dump 
constraints on variables</td></tr>
</table>

<p><h3 id="sec:summary-lib-clp-simplex"><a id="sec:F.2.31"><span class="sec-nr">F.2.31</span> <span class="sec-title">library(clp/simplex)</span></a></h3>

<a id="sec:summary-lib-clp-simplex"></a>
<table>
<tr><td><a class="pred" href="simplex.html#assignment/2">assignment/2</a></td><td>Solve 
assignment problem</td></tr>
<tr><td><a class="pred" href="simplex.html#constraint/3">constraint/3</a></td><td>Add 
linear constraint to state</td></tr>
<tr><td><a class="pred" href="simplex.html#constraint/4">constraint/4</a></td><td>Add 
named linear constraint to state</td></tr>
<tr><td><a class="pred" href="simplex.html#constraint_add/4">constraint_add/4</a></td><td>Extend 
a named constraint</td></tr>
<tr><td><a class="pred" href="simplex.html#gen_state/1">gen_state/1</a></td><td>Create 
empty linear program</td></tr>
<tr><td><a class="pred" href="simplex.html#maximize/3">maximize/3</a></td><td>Maximize 
objective function in to linear constraints</td></tr>
<tr><td><a class="pred" href="simplex.html#minimize/3">minimize/3</a></td><td>Minimize 
objective function in to linear constraints</td></tr>
<tr><td><a class="pred" href="simplex.html#objective/2">objective/2</a></td><td>Fetch 
value of objective function</td></tr>
<tr><td><a class="pred" href="simplex.html#shadow_price/3">shadow_price/3</a></td><td>Fetch 
shadow price in solved state</td></tr>
<tr><td><a class="pred" href="simplex.html#transportation/4">transportation/4</a></td><td>Solve 
transportation problem</td></tr>
<tr><td><a class="pred" href="simplex.html#variable_value/3">variable_value/3</a></td><td>Fetch 
value of variable in solved state</td></tr>
</table>

<p><h3 id="sec:summary-lib-solution_sequences"><a id="sec:F.2.32"><span class="sec-nr">F.2.32</span> <span class="sec-title">library(solution_sequences)</span></a></h3>

<a id="sec:summary-lib-solution_sequences"></a>
<table>
<tr><td><a class="pred" href="solutionsequences.html#distinct/1">distinct/1</a></td><td>True 
if Goal is true and no previous solution of Goal bound Witness to the 
same value.</td></tr>
<tr><td><a class="pred" href="solutionsequences.html#distinct/2">distinct/2</a></td><td>True 
if Goal is true and no previous solution of Goal bound Witness to the 
same value.</td></tr>
<tr><td><a class="pred" href="solutionsequences.html#group_by/4">group_by/4</a></td><td>Group 
bindings of Template that have the same value for By.</td></tr>
<tr><td><a class="pred" href="solutionsequences.html#limit/2">limit/2</a></td><td>Limit 
the number of solutions.</td></tr>
<tr><td><a class="pred" href="solutionsequences.html#offset/2">offset/2</a></td><td>Ignore 
the first Count solutions.</td></tr>
<tr><td><a class="pred" href="solutionsequences.html#order_by/2">order_by/2</a></td><td>Order 
solutions according to Spec.</td></tr>
</table>

<p><h3 id="sec:summary-lib-thread_pool"><a id="sec:F.2.33"><span class="sec-nr">F.2.33</span> <span class="sec-title">library(thread_pool)</span></a></h3>

<a id="sec:summary-lib-thread_pool"></a>
<table>
<tr><td><a class="pred" href="threadpool.html#create_pool/1">create_pool/1</a></td><td>Hook 
to create a thread pool lazily.</td></tr>
<tr><td><a class="pred" href="threadpool.html#current_thread_pool/1">current_thread_pool/1</a></td><td>True 
if Name refers to a defined thread pool.</td></tr>
<tr><td><a class="pred" href="threadpool.html#thread_create_in_pool/4">thread_create_in_pool/4</a></td><td>Create 
a thread in Pool.</td></tr>
<tr><td><a class="pred" href="threadpool.html#thread_pool_create/3">thread_pool_create/3</a></td><td>Create 
a pool of threads.</td></tr>
<tr><td><a class="pred" href="threadpool.html#thread_pool_destroy/1">thread_pool_destroy/1</a></td><td>Destroy 
the thread pool named Name.</td></tr>
<tr><td><a class="pred" href="threadpool.html#thread_pool_property/2">thread_pool_property/2</a></td><td>True 
if Property is a property of thread pool Name.</td></tr>
</table>

<p><h3 id="sec:summary-lib-varnumbers"><a id="sec:F.2.34"><span class="sec-nr">F.2.34</span> <span class="sec-title">library(varnumbers)</span></a></h3>

<a id="sec:summary-lib-varnumbers"></a>
<table>
<tr><td><a class="pred" href="varnumbers.html#max_var_number/3">max_var_number/3</a></td><td>True 
when Max is the max of Start and the highest numbered $VAR(N) term.</td></tr>
<tr><td><a class="pred" href="varnumbers.html#numbervars/1">numbervars/1</a></td><td>Number 
variables in Term using $VAR(N).</td></tr>
<tr><td><a class="pred" href="varnumbers.html#varnumbers/2">varnumbers/2</a></td><td>Inverse 
of numbervars/1.</td></tr>
<tr><td><a class="pred" href="varnumbers.html#varnumbers/3">varnumbers/3</a></td><td>Inverse 
of numbervars/3.</td></tr>
</table>

<p></body></html>