1<!DOCTYPE html> 2<html> 3<head> 4<title>SWI-Prolog</title> 5 6<link rel="stylesheet" type="text/css" href="/css/footer.css"> 7<link rel="stylesheet" type="text/css" href="/css/plweb.css"> 8<link rel="stylesheet" type="text/css" href="/css/swipl.css">
9<script type="text/javascript" src="/js/jquery-3.6.0.min.js"> 10 11</script>
11 12<link rel="stylesheet" type="text/css" href="/js/jquery/ui/jquery-ui.min.css"> 13<link rel="stylesheet" type="text/css" href="/pldoc/res/pldoc.css">
14<script type="text/javascript" src="/js/jquery/menu.js"> 15 16</script>
vendor: 1 bytes, line 16
16
17<script type="text/javascript" src="/js/jquery/ui/jquery-ui.min.js"> 18 19</script>
19 20<meta http-equiv="content-type" content="text/html; charset=UTF-8"> 21<link rel="shortcut icon" href="/icons/favicon.ico"> 22<link rel="apple-touch-icon" href="/apple-touch-icon.png">
23<script defer="defer" async="async" src="https://buttons.github.io/buttons.js"> 24 25</script>
25 26 27</head> 28<body> 29<div class="outer-container"> 30<div id="upper-header"> 31 32<table id="upper-header-contents"> 33<tr><td id="dyknow-container">Did you know ...
34<script type="text/javascript"> 35 36 $(function() { 37 $.ajax({ url: "/dyk", 38 success: function(data) { 39 console.log(data); 40 $("#"+"dyknow-container").html(data); 41 } 42 }); 43 }); 44 45</script>
45 46</td><td id="search-container"><span class="lbl">Search Documentation:</span> 47 48<form action="/search" id="search-form"> 49<input name="for" id="for" value=""> 50<input id="submit-for" type="submit" value="Search">
51<script type="text/javascript"> 52 53 $(function() { 54 function htmlEncode(text) { 55 if ( !text ) return ""; 56 return document.createElement('a') 57 .appendChild(document.createTextNode(text)) 58 .parentNode 59 .innerHTML; 60 } 61 $("#"+"for").autocomplete({ 62 minLength: 1, 63 delay: 0.3, 64 source: "/autocomplete/ac_predicate", 65 focus: function(event,ui) { 66 $("#"+"for").val(ui.item.label); 67 return false; 68 }, 69 select: function(event,ui) { 70 $("#"+"for").val(ui.item.label); 71 window.location.href = ui.item.href; 72 return false; 73 } 74 }) 75 .data("ui-autocomplete")._renderItem = function(ul,item) { 76 var label = String(htmlEncode(item.label)).replace( 77 htmlEncode(this.term), 78 "<span class=\"acmatch\">"+this.term+"</span>"); 79 var tag = item.tag ? " <i>["+item.tag+"]</i>" : ""; 80 return $("<li>") 81 .append("<a class=\""+item.class+"\">"+label+tag+"</a>") 82 .appendTo(ul) 83 }; 84 }); 85 86</script>
86 87</form> 88 89</td></tr> 90</table> 91 92</div> 93<div id="tag-line-area"><a href="http://www.swi-prolog.org"><img class="owl" src="/icons/swipl.png" alt="SWI-Prolog owl logo" title="SWI-Prolog owl logo"></a><span class="tagline">Robust, mature, free. <b>Prolog for the real world.</b></span></div> 94 95<div id="menubar"> 96<div class="menubar fixed-width"> 97<ul class="menubar-container"> 98<li><a href="/">HOME</a></li> 99<li>DOWNLOAD 100<ul> 101<li><a href="/Download.html">SWI-Prolog</a></li> 102<li><a href="/build/">Sources/building</a></li> 103<li><a href="/Docker.html">Docker images</a></li> 104<li><a href="/pack/list">Add-ons</a></li> 105<li><a href="https://github.com/SWI-Prolog">Browse GIT<img class="ext-link" src="/icons/ext-link.png" alt="External"></a></li> 106</ul> 107</li> 108<li>DOCUMENTATION 109<ul> 110<li><a href="/pldoc/refman/">Manual</a></li> 111<li><a href="/pldoc/package/">Packages</a></li> 112<li><a href="/FAQ/">FAQ</a></li> 113<li><a href="/pldoc/man?section=cmdline">Command line</a></li> 114<li><a href="/pldoc/package/pldoc.html">PlDoc</a></li> 115<li>Bluffers<span class="arrow">▶</span> 116<ul> 117<li><a href="/pldoc/man?section=syntax">Prolog syntax</a></li> 118<li><a href="/pldoc/man?section=emacsbluff">PceEmacs</a></li> 119<li><a href="/pldoc/man?section=htmlwrite">HTML generation</a></li> 120</ul> 121</li> 122<li><a href="/license.html">License</a></li> 123<li><a href="/privacy.html">Privacy</a></li> 124<li><a href="/Publications.html">Publications</a></li> 125<li><a href="/pldoc/man?section=extensions">Rev 7 Extensions</a></li> 126</ul> 127</li> 128<li>TUTORIALS 129<ul> 130<li>Beginner<span class="arrow">▶</span> 131<ul> 132<li><a href="/pldoc/man?section=quickstart">Getting started</a></li> 133<li><a href="http://lpn.swi-prolog.org/">Learn Prolog Now!<img class="ext-link" src="/icons/ext-link.png" alt="External"></a></li> 134<li><a href="http://book.simply-logical.space/">Simply Logical<img class="ext-link" src="/icons/ext-link.png" alt="External"></a></li> 135<li><a href="/pldoc/man?section=debugoverview">Debugger</a></li> 136<li><a href="/IDE.html">Development tools</a></li> 137</ul> 138</li> 139<li>Advanced<span class="arrow">▶</span> 140<ul> 141<li>
141<a href="http://chiselapp.com/user/ttmrichter/repository/gng/doc/trunk/output/tutorials/swiplmodtut.html">Modules<img class="ext-link" src="/icons/ext-link.png" alt="External"></a></li> 142<li><a href="https://www.github.com/Anniepoo/swipldcgtut/blob/master/dcgcourse.adoc">Grammars (DCGs)<img class="ext-link" src="/icons/ext-link.png" alt="External"></a></li> 143<li><a href="https://www.github.com/Anniepoo/swiplclpfd/blob/master/clpfd.adoc">clp(fd)<img class="ext-link" src="/icons/ext-link.png" alt="External"></a></li> 144<li><a href="https://www.github.com/Anniepoo/swiplmessage/blob/master/message.adoc">Printing messages<img class="ext-link" src="/icons/ext-link.png" alt="External"></a></li> 145<li><a href="http://chiselapp.com/user/ttmrichter/repository/swipldoctut/doc/tip/doc/tutorial.html">PlDoc<img class="ext-link" src="/icons/ext-link.png" alt="External"></a></li> 146</ul> 147</li> 148<li>Web applications<span class="arrow">▶</span> 149<ul> 150<li><a href="https://www.github.com/Anniepoo/swiplwebtut/blob/master/web.adoc">Web applications<img class="ext-link" src="/icons/ext-link.png" alt="External"></a></li> 151<li><a href="https://github.com/triska/letswicrypt">Let's Encrypt!<img class="ext-link" src="/icons/ext-link.png" alt="External"></a></li> 152<li><a href="/pengines/">Pengines</a></li> 153</ul> 154</li> 155<li>Semantic web<span class="arrow">▶</span> 156<ul> 157<li><a href="https://cliopatria.swi-prolog.org/tutorial/">ClioPatria<img class="ext-link" src="/icons/ext-link.png" alt="External"></a></li> 158<li><a href="/howto/UseRdfMeta.html">RDF namespaces</a></li> 159</ul> 160</li> 161<li>Graphics<span class="arrow">▶</span> 162<ul> 163<li><a href="/download/xpce/doc/prolog/coursenotes.pdf">XPCE</a></li> 164<li><a href="/Graphics.html">GUI options</a></li> 165</ul> 166</li> 167<li>Machine learning<span class="arrow">▶</span> 168<ul> 169<li><a href="http://cplint.ml.unife.it/">Probabilistic Logic Programming<img class="ext-link" src="/icons/ext-link.png" alt="External"></a></li> 170</ul> 171</li> 172<li>External collections<span class="arrow">▶</span> 173<ul> 174<li><a href="https://www.metalevel.at/prolog">Meta level tutorials<img class="ext-link" src="/icons/ext-link.png" alt="External"></a></li> 175</ul> 176</li> 177<li>For packagers<span class="arrow">▶</span> 178<ul> 179<li><a href="/build/guidelines.html">Linux packages</a></li> 180</ul> 181</li> 182</ul> 183</li> 184<li><a href="/community.html">COMMUNITY</a> 185<ul> 186<li><a href="https://swi-prolog.discourse.group">Forum & mailing list<img class="ext-link" src="/icons/ext-link.png" alt="External"></a></li> 187<li><a href="/blog">Blog</a></li> 188<li><a href="/news/archive">News</a></li> 189<li><a href="/bug.html">Report a bug</a></li> 190<li><a href="/howto/SubmitPatch.html">Submit a patch</a></li> 191<li><a href="/howto/Pack.html">Submit an add-on</a></li> 192<li><a href="https://github.com/SWI-Prolog/roadmap">Roadmap (on GitHub)<img class="ext-link" src="/icons/ext-link.png" alt="External"></a></li> 193<li><a href="/Links.html">External links</a></li> 194<li><a href="/contributing.html">Contributing</a></li> 195<li><a href="/Code-of-Conduct.html">Code of Conduct</a></li> 196<li><a href="/Contributors.html">Contributors</a></li> 197<li><a href="/loot.html">SWI-Prolog items</a></li> 198</ul> 199</li> 200<li><a href="/commercial/index.html">COMMERCIAL</a></li> 201<li>WIKI 202<ul> 203<li><a href="/openid/login?openid.return_to=/">Login</a></li> 204<li><a href="/wiki/changes">View changes</a></li> 205<li><a href="/wiki/sandbox">Sandbox</a></li> 206<li><a href="/wiki/">Wiki help</a></li> 207<li><a href="/list-tags">All tags</a></li> 208</ul> 209</li> 210</ul> 211</div> 212</div> 213<div id="blurb"> 214<div> SWI-Prolog offers a comprehensive free Prolog environment. 215 Since its start in 1987, SWI-Prolog development has been driven 216 by the needs of real world applications. SWI-Prolog is widely 217 used in research and education as well as commercial applications. 218 Join over a million users who have downloaded SWI-Prolog. 219 <a href="/features.html">more ...</a> 220 </div> 221 222 </div> 223 224<table id="cta-container"> 225<tr><td style="text-align:left; vertical-align: top"> <a href="Download.html">Download SWI-Prolog</a> 226 </td><td style="text-align:center; vertical-align: top"> <a href="GetStarted.html">Get Started</a> 227 </td><td style="text-align:right; white-space: nowrap; vertical-align: top"> <a href="https://swish.swi-prolog.org"> Try SWI-Prolog online (SWISH) </a><br> 228 229 <a href="https://wasm.swi-prolog.org/wasm/tinker" style="font-size: 60%"> ð¥ Run SWI-Tinker in your browser</a><br> 230 231 </td></tr> 232</table> 233 234 235<div class="github-actions"><a class="github-button" id="github-star" href="https://github.com/SWI-Prolog/swipl-devel" data-color-scheme="no-preference: light; light: light;
235 dark: dark;" data-size="large" data-show-count="true" aria-label="Star SWI-Prolog/swipl-devel on GitHub">Star</a><a class="github-button" id="github-sponsor" href="https://github.com/sponsors/SWI-Prolog" data-color-scheme="no-preference: light; light: light; dark: dark;" data-size="large" data-icon="octicon-heart" data-show-count="true" aria-label="Sponsor @SWI-Prolog on GitHub">Sponsor</a></div> 236<span>Â </span> 237 238 239<p> 240</p> 241<div id="dialog" style="display:none;"></div> 242<div class="footer newstyle"> 243<div class="footer"> 244<div id="footer"> 245<div class="current-user"><a class="signin" href="/openid/login?openid.return_to=/">login</a></div> 246<a id="powered" href="http://www.swi-prolog.org">Powered by SWI-Prolog 10.1.15-4-g902720a5d</a></div> 247</div>
248<script type="text/javascript"> 249 250 $().ready(function() 251 { var $navtree = $(".navwindow"); 252 var $navcontent = $(".navcontent"); 253 if ( $navtree.length > 0 && $navcontent.length > 0 ) 254 { var $window = $(window).on("resize", function() 255 { var ch = $navcontent.height(); 256 var nh = $navtree.height(); 257 if ( nh > 400 && nh > ch + 200 ) 258 { if ( ch < 300 ) ch = 300; 259 $navtree.height(ch); 260 $navtree.css('overflow-y', 'scroll'); 261 262 var current = $navtree.find("li.nav.current"); 263 if ( current.position().top > ch-40 ) 264 { $navtree.scrollTop(current.position().top - (ch-40)); 265 } 266 } 267 }).trigger("resize") 268 } 269 }); 270 271</script>
271 272</div> 273<div id="tail-end"> </div> 274</div> 275</body> 276 277</html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.