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

  • swipl
    • library
      • error.pl
      • debug.pl
      • apply.pl
      • lists.pl -- List Manipulation
      • broadcast.pl
      • predicate_options.pl -- Access and analyse predicate options
      • shlib.pl
      • option.pl
      • thread_pool.pl
      • gensym.pl -- Generate unique symbols
      • settings.pl
      • arithmetic.pl -- Extensible arithmetic
      • main.pl -- Provide entry point for scripts
      • readutil.pl
      • operators.pl -- Manage operators
      • pairs.pl -- Operations on key-value lists
      • prolog_source.pl -- Examine Prolog source-files
      • record.pl -- Access compound arguments by name
      • quasi_quotations.pl -- Define Quasi Quotation syntax
      • pure_input.pl -- Pure Input from files and streams
      • solution_sequences.pl -- Modify solution sequences
      • ordsets.pl -- Ordered set manipulation
      • random.pl -- Random numbers
      • base64.pl -- Base64 encoding and decoding
      • aggregate.pl -- Aggregation operators on backtrackable predicates
      • yall.pl -- Lambda expressions
      • sandbox.pl -- Sandboxed Prolog code
      • apply_macros.pl -- Goal expansion rules to avoid meta-calling
      • assoc.pl -- Binary associations
      • prolog_format.pl -- Analyse format specifications
      • csv.pl -- Process CSV (Comma-Separated Values) data
      • pprint.pl -- Pretty Print Prolog terms
      • atom.pl -- Operations on atoms
      • modules.pl -- Module utility predicates
      • occurs.pl -- Finding and counting sub-terms
      • prolog_xref.pl -- Prolog cross-referencer data collection
      • prolog_colour.pl -- Prolog syntax colouring support.
      • lazy_lists.pl -- Lazy list handling
      • ugraphs.pl -- Graph manipulation library
      • iostream.pl -- Utilities to deal with streams
      • url.pl -- Analysing and constructing URL
      • www_browser.pl -- Open a URL in the users browser
      • prolog_pack.pl -- A package manager for Prolog
      • git.pl -- Run GIT commands
      • rbtrees.pl -- Red black trees
      • dif.pl -- The dif/2 constraint
      • charsio.pl -- I/O on Lists of Character Codes
      • prolog_stack.pl -- Examine the Prolog stack
      • edinburgh.pl -- Some traditional Edinburgh predicates
      • prolog_clause.pl -- Get detailed source-information about a clause
      • prolog_breakpoints.pl -- Manage Prolog break-points
      • wfs.pl -- Well Founded Semantics interface
      • dialect.pl -- Support multiple Prolog dialects
      • prolog_code.pl -- Utilities for reasoning about code
      • sort.pl
      • dicts.pl -- Dict utilities
      • varnumbers.pl -- Utilities for numbered terms
      • thread.pl -- High level thread primitives
      • system.pl -- System utilities
      • quintus.pl -- Quintus compatibility
      • base32.pl -- Base32 encoding and decoding
      • codesio.pl -- I/O on Lists of Character Codes
      • coinduction.pl -- Co-Logic Programming
      • date.pl -- Process dates and times
      • heaps.pl -- heaps/priority queues
      • statistics.pl -- Get information about resource usage
      • terms.pl -- Term manipulation
        • term_size/2
        • variant/2
        • subsumes_chk/2
        • subsumes/2
        • term_subsumer/3
        • term_factorized/3
        • mapargs/3
        • mapsubterms/3
        • mapsubterms_var/3
        • foldsubterms/4
        • foldsubterms/5
        • same_functor/2
        • same_functor/3
        • same_functor/4
      • when.pl -- Conditional coroutining
      • backcomp.pl -- Backward compatibility
      • strings.pl -- String utilities
      • macros.pl -- Macro expansion
      • hashtable.pl -- Hash tables
      • listing.pl -- List programs and pretty print clauses
      • streams.pl -- Manage Prolog streams
      • ansi_term.pl -- Print decorated text to ANSI consoles
      • prolog_profile.pl -- Execution profiler
      • increval.pl -- Incremental dynamic predicate modification
      • tables.pl -- XSB interface to tables
      • prolog_coverage.pl -- Coverage analysis tool
      • ctypes.pl -- Character code classification
      • check.pl -- Consistency checking
      • prolog_trace.pl -- Print access to predicates
      • prolog_wrap.pl -- Wrapping predicates
      • prolog_jiti.pl -- Just In Time Indexing (JITI) utilities
      • prolog_debug.pl -- User level debugging tools
      • optparse.pl -- command line parsing
      • prolog_autoload.pl -- Autoload all dependencies
      • explain.pl -- Describe Prolog Terms
      • exceptions.pl -- Exception classification
      • zip.pl -- Access resource ZIP archives
      • fastrw.pl -- Fast reading and writing of terms
      • prolog_versions.pl -- Demand specific (Prolog) versions
      • edit.pl -- Editor interface
      • help.pl -- Text based manual
      • threadutil.pl -- Interactive thread utilities
      • intercept.pl -- Intercept and signal interface
 same_functor(?Term1, ?Term2) is semidet
 same_functor(?Term1, ?Term2, -Arity) is semidet
 same_functor(?Term1, ?Term2, ?Name, ?Arity) is semidet
True when Term1 and Term2 are terms that have the same functor (Name/Arity). The arguments must be sufficiently instantiated, which means either Term1 or Term2 must be bound or both Name and Arity must be bound.

If Arity is 0, Term1 and Term2 are unified with Name for compatibility.

Compatibility
- SICStus