/usr/local/lib/swipl/library/prolog_code.pl
All Application Manual Name SummaryHelp

  • swipl
    • library
      • error.pl
      • debug.pl -- Print debug messages and test assertions
      • apply.pl -- Apply predicates on a list
      • lists.pl
      • broadcast.pl
      • shlib.pl -- Utility library for loading foreign objects (DLLs, shared objects)
      • option.pl
      • thread_pool.pl -- Resource bounded thread management
      • gensym.pl -- Generate unique symbols
      • settings.pl -- Setting management
      • arithmetic.pl -- Extensible arithmetic
      • main.pl -- Provide entry point for scripts
      • readutil.pl -- Read utilities
      • operators.pl
      • pairs.pl
      • prolog_source.pl -- Examine Prolog source-files
      • record.pl
      • quasi_quotations.pl
      • pure_input.pl
      • solution_sequences.pl
      • ordsets.pl
      • random.pl
      • base64.pl
      • aggregate.pl
      • yall.pl -- Lambda expressions
      • sandbox.pl
      • apply_macros.pl -- Goal expansion rules to avoid meta-calling
      • assoc.pl -- Binary associations
      • prolog_format.pl -- Analyse format specifications
      • predicate_options.pl -- Access and analyse predicate options
      • csv.pl
      • pprint.pl
      • atom.pl
      • modules.pl -- Module utility predicates
      • occurs.pl
      • prolog_xref.pl -- Prolog cross-referencer data collection
      • prolog_colour.pl -- Prolog syntax colouring support.
      • lazy_lists.pl
      • ugraphs.pl -- Graph manipulation library
      • url.pl
      • www_browser.pl -- Open a URL in the users browser
      • prolog_pack.pl -- A package manager for Prolog
      • git.pl -- Run GIT commands
      • utf8.pl -- UTF-8 encoding/decoding on lists of character codes.
      • dialect.pl -- Support multiple Prolog dialects
      • system.pl -- System utilities
      • terms.pl
      • date.pl
      • persistency.pl
      • iostream.pl -- Utilities to deal with streams
      • prolog_stack.pl
      • edinburgh.pl -- Some traditional Edinburgh predicates
      • prolog_clause.pl
      • prolog_breakpoints.pl -- Manage Prolog break-points
      • wfs.pl
      • prolog_code.pl -- Utilities for reasoning about code
        • comma_list/2
        • semicolon_list/2
        • mkconj/3
        • mkdisj/3
        • is_predicate_indicator/1
        • pi_head/2
        • head_name_arity/3
        • most_general_goal/2
        • extend_goal/3
        • predicate_label/2
        • predicate_sort_key/2
        • is_control_goal/1
        • body_term_calls/2
      • sort.pl
      • dicts.pl -- Dict utilities
      • dif.pl
      • varnumbers.pl
      • pio.pl -- Pure I/O
      • base32.pl
      • charsio.pl -- I/O on Lists of Character Codes
      • codesio.pl -- I/O on Lists of Character Codes
      • coinduction.pl -- Co-Logic Programming
      • heaps.pl
      • rbtrees.pl
      • statistics.pl -- Get information about resource usage
      • when.pl -- Conditional coroutining
      • backcomp.pl -- Backward compatibility
      • quintus.pl
      • threadutil.pl -- Interactive thread utilities
      • prolog_debug.pl -- User level debugging tools
      • thread.pl -- High level thread primitives
      • prolog_profile.pl -- Execution profiler
      • prolog_coverage.pl
      • increval.pl
      • tables.pl -- XSB interface to tables
      • listing.pl -- List programs and pretty print clauses
      • hashtable.pl
      • zip.pl
      • strings.pl
      • intercept.pl
      • help.pl -- Text based manual
      • ansi_term.pl -- Print decorated text to ANSI consoles
      • edit.pl
      • make.pl -- Reload modified source files
      • tty.pl
      • fastrw.pl
      • ctypes.pl -- Character code classification
      • check.pl
      • streams.pl -- Manage Prolog streams
      • portray_text.pl
      • prolog_trace.pl
      • prolog_autoload.pl -- Autoload all dependencies
      • prolog_versions.pl -- Demand specific (Prolog) versions
      • files.pl
      • oset.pl
      • prolog_wrap.pl
      • nb_set.pl -- Non-backtrackable sets
      • prolog_jiti.pl
      • writef.pl
      • exceptions.pl
      • optparse.pl
      • rwlocks.pl
      • qsave.pl
      • shell.pl -- Elementary shell commands
      • prolog_codewalk.pl
      • prolog_history.pl
      • prolog_metainference.pl
      • prolog_config.pl
 comma_list(?CommaList, ?List)
 semicolon_list(?SemicolonList, ?List)
True if CommaList is a nested term over the ','/2 (';'/2) functor and List is a list expressing the elements of the conjunction. The predicate is deterministic if at least CommaList or List is sufficiently instantiated. If both are partial structures it enumerates ever growing conjunctions and lists. CommaList may be left or right associative on input. When generated, the CommaList is always right associative.

This predicate is typically used to reason about Prolog conjunctions (disjunctions) as many operations are easier on lists than on binary trees over some operator.