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

  • swipl
    • library
      • error.pl
      • debug.pl
      • apply.pl
      • lists.pl
      • broadcast.pl
      • shlib.pl -- Utility library for loading foreign objects (DLLs, shared objects)
      • option.pl -- Option list processing
      • thread_pool.pl -- Resource bounded thread management
      • gensym.pl
      • settings.pl -- Setting management
      • arithmetic.pl
      • main.pl -- Provide entry point for scripts
      • readutil.pl
      • operators.pl -- Manage operators
      • pairs.pl
      • 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
      • ordsets.pl
      • random.pl
      • base64.pl
      • aggregate.pl
      • yall.pl
      • sandbox.pl
      • apply_macros.pl -- Goal expansion rules to avoid meta-calling
      • assoc.pl
      • prolog_format.pl -- Analyse format specifications
      • predicate_options.pl
      • csv.pl
      • pprint.pl -- Pretty Print Prolog terms
      • atom.pl
      • modules.pl -- Module utility predicates
      • occurs.pl
      • prolog_xref.pl
      • prolog_colour.pl
      • lazy_lists.pl
      • ugraphs.pl
      • url.pl
      • www_browser.pl
      • 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
      • system.pl
      • terms.pl -- Term manipulation
      • date.pl -- Process dates and times
      • persistency.pl
      • iostream.pl -- Utilities to deal with streams
      • prolog_stack.pl
      • edinburgh.pl
      • prolog_clause.pl
      • prolog_breakpoints.pl
      • wfs.pl -- Well Founded Semantics interface
      • prolog_code.pl
      • sort.pl
      • dicts.pl
      • dif.pl
      • varnumbers.pl
      • pio.pl
      • check.pl
      • quintus.pl -- Quintus compatibility
        • unix/1
        • otherwise/0
        • abs/2
        • sin/2
        • cos/2
        • tan/2
        • log/2
        • log10/2
        • pow/3
        • ceiling/2
        • floor/2
        • round/2
        • sqrt/2
        • acos/2
        • asin/2
        • atan/2
        • atan2/3
        • sign/2
        • genarg/3
        • prolog_flag/2
        • date/1
        • no_style_check/1
        • simple/1
        • current_stream/3
        • stream_position/3
        • skip_line/0
        • skip_line/1
        • compile/1
        • atom_char/2
        • midstring/3
        • midstring/4
        • midstring/5
        • midstring/6
        • raise_exception/1
        • on_exception/3
      • base32.pl
      • charsio.pl
      • codesio.pl
      • coinduction.pl
      • heaps.pl -- heaps/priority queues
      • rbtrees.pl
      • statistics.pl
      • when.pl
      • backcomp.pl
      • help.pl -- Text based manual
      • increval.pl
      • tables.pl
      • writef.pl
      • prolog_profile.pl
      • prolog_coverage.pl -- Coverage analysis tool
      • prolog_debug.pl
      • ctypes.pl -- Character code classification
      • prolog_codewalk.pl -- Prolog code walker
      • thread.pl -- High level thread primitives
      • prolog_trace.pl
      • listing.pl -- List programs and pretty print clauses
      • nb_set.pl
      • intercept.pl
      • prolog_jiti.pl -- Just In Time Indexing (JITI) utilities
      • shell.pl -- Elementary shell commands
      • ansi_term.pl -- Print decorated text to ANSI consoles
      • zip.pl
      • hashtable.pl
      • edit.pl
      • make.pl -- Reload modified source files
      • files.pl
      • strings.pl
      • explain.pl
      • portray_text.pl
      • prolog_versions.pl -- Demand specific (Prolog) versions
      • prolog_autoload.pl
      • macros.pl
      • optparse.pl -- command line parsing
      • rwlocks.pl
      • prolog_metainference.pl -- Infer meta-predicate properties
      • oset.pl
      • prolog_history.pl
      • prolog_config.pl
      • exceptions.pl -- Exception classification
      • tty.pl -- Terminal operations
      • threadutil.pl -- Interactive thread utilities
      • prolog_wrap.pl -- Wrapping predicates
      • readln.pl
      • streams.pl -- Manage Prolog streams
 midstring(?ABC, ?B, ?AC) is nondet
 midstring(?ABC, ?B, ?AC, LenA) is nondet
 midstring(?ABC, ?B, ?AC, LenA, LenB) is nondet
 midstring(?ABC, ?B, ?AC, LenA, LenB, LenC) is nondet
Too difficult to explain. See the Quintus docs. As far as I understand them the code below emulates this function just fine.