- swipl
- library
- error.pl
- debug.pl
- apply.pl
- lists.pl
- broadcast.pl
- shlib.pl
- option.pl
- thread_pool.pl -- Resource bounded thread management
- gensym.pl
- settings.pl
- arithmetic.pl
- main.pl
- readutil.pl
- operators.pl -- Manage operators
- pairs.pl
- prolog_source.pl -- Examine Prolog source-files
- quasi_quotations.pl -- Define Quasi Quotation syntax
- url.pl
- www_browser.pl -- Open a URL in the users browser
- prolog_colour.pl -- Prolog syntax colouring support.
- record.pl -- Access compound arguments by name
- prolog_xref.pl -- Prolog cross-referencer data collection
- occurs.pl
- ordsets.pl
- assoc.pl -- Binary associations
- ugraphs.pl
- solution_sequences.pl
- atom.pl
- prolog_pack.pl -- A package manager for Prolog
- git.pl -- Run GIT commands
- ctypes.pl -- Character code classification
- utf8.pl
- base64.pl
- persistency.pl
- pure_input.pl
- nb_set.pl -- Non-backtrackable sets
- aggregate.pl -- Aggregation operators on backtrackable predicates
- csv.pl
- iostream.pl -- Utilities to deal with streams
- dialect.pl
- apply_macros.pl -- Goal expansion rules to avoid meta-calling
- yall.pl
- prolog_code.pl -- Utilities for reasoning about code
- dif.pl -- The dif/2 constraint
- thread.pl -- High level thread primitives
- predicate_options.pl
- rbtrees.pl
- nb_rbtrees.pl -- Non-backtrackable operations on red black trees
- sandbox.pl
- prolog_format.pl
- random.pl
- pprint.pl
- modules.pl
- lazy_lists.pl
- edinburgh.pl
- prolog_clause.pl
- prolog_breakpoints.pl
- dicts.pl
- prolog_config.pl
- shell.pl
- backcomp.pl
- charsio.pl -- I/O on Lists of Character Codes
- base32.pl
- heaps.pl -- heaps/priority queues
- prolog_debug.pl
- date.pl -- Process dates and times
- threadutil.pl -- Interactive thread utilities
- terms.pl
- edit.pl
- make.pl -- Reload modified source files
- wfs.pl -- Well Founded Semantics interface
- check.pl
- codesio.pl -- I/O on Lists of Character Codes
- statistics.pl
- coinduction.pl -- Co-Logic Programming
- files.pl
- strings.pl
- tableutil.pl -- Table inspection and statistics utilities
- increval.pl
- tables.pl
- hashtable.pl
- help.pl
- prolog_trace.pl -- Print access to predicates
- prolog_jiti.pl
- intercept.pl
- listing.pl
- macros.pl
- optparse.pl
- prolog_coverage.pl
- sort.pl
- prolog_stack.pl -- Examine the Prolog stack
- prolog_codewalk.pl
- prolog_profile.pl
- quintus.pl
- qsave.pl
- zip.pl
- prolog_autoload.pl -- Autoload all dependencies
- ansi_term.pl -- Print decorated text to ANSI consoles
- prolog_versions.pl -- Demand specific (Prolog) versions
- varnumbers.pl -- Utilities for numbered terms
- when.pl
- system.pl
- prolog_wrap.pl
- prolog_qlfmake.pl -- Compile the library to QLF format
- exceptions.pl
- tty.pl
- oset.pl
- portray_text.pl
- writef.pl
- streams.pl -- Manage Prolog streams
- fastrw.pl
- explain.pl
- prolog_history.pl
- library
- free_variables(:Generator, +Template, +VarList0, -VarList) is det
- Find free variables in bagof/setof template. In order to handle
variables properly, we have to find all the universally
quantified variables in the Generator. All variables as yet
unbound are universally quantified, unless
free_variables(Generator, Template, OldList, NewList)finds this set using OldList as an accumulator.- author
- - Richard O'Keefe
- - Jan Wielemaker (made some SWI-Prolog enhancements)
- license
- - Public domain (from DEC10 library).
- To be done
- - Distinguish between control-structures and data terms.
- - Exploit our built-in term_variables/2 at some places?