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

  • swipl
    • library
      • error.pl
      • debug.pl
      • apply.pl
      • lists.pl
      • broadcast.pl
      • shlib.pl
      • option.pl
      • thread_pool.pl
      • gensym.pl
      • settings.pl
      • arithmetic.pl -- Extensible arithmetic
      • main.pl -- Provide entry point for scripts
      • readutil.pl
      • operators.pl
      • pairs.pl -- Operations on key-value lists
      • prolog_source.pl
      • record.pl
      • quasi_quotations.pl -- Define Quasi Quotation syntax
      • sandbox.pl
      • apply_macros.pl -- Goal expansion rules to avoid meta-calling
      • yall.pl
      • assoc.pl -- Binary associations
      • prolog_format.pl
      • pure_input.pl
      • solution_sequences.pl
      • ordsets.pl -- Ordered set manipulation
      • random.pl
      • base64.pl -- Base64 encoding and decoding
      • aggregate.pl -- Aggregation operators on backtrackable predicates
      • predicate_options.pl
      • csv.pl -- Process CSV (Comma-Separated Values) data
      • pprint.pl
      • atom.pl
      • modules.pl
      • occurs.pl
      • prolog_xref.pl
      • prolog_colour.pl -- Prolog syntax colouring support.
      • lazy_lists.pl
      • ugraphs.pl
      • url.pl
      • www_browser.pl
      • prolog_pack.pl
      • git.pl -- Run GIT commands
      • utf8.pl -- UTF-8 encoding/decoding on lists of character codes.
      • 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
      • prolog_versions.pl
      • prolog_wrap.pl
      • dialect.pl
      • date.pl
      • persistency.pl
      • iostream.pl -- Utilities to deal with streams
      • prolog_code.pl -- Utilities for reasoning about code
      • strings.pl
      • dif.pl
      • edinburgh.pl
      • terms.pl
      • ansi_term.pl -- Print decorated text to ANSI consoles
      • threadutil.pl -- Interactive thread utilities
      • prolog_stack.pl
      • prolog_clause.pl
      • prolog_breakpoints.pl -- Manage Prolog break-points
      • wfs.pl
      • sort.pl
      • dicts.pl
      • varnumbers.pl
      • rbtrees.pl -- Red black trees
      • backcomp.pl -- Backward compatibility
      • charsio.pl -- I/O on Lists of Character Codes
      • base32.pl -- Base32 encoding and decoding
      • codesio.pl
      • coinduction.pl
      • heaps.pl -- heaps/priority queues
      • statistics.pl
      • when.pl
      • increval.pl
      • nb_rbtrees.pl
      • ctypes.pl -- Character code classification
      • system.pl
      • shell.pl -- Elementary shell commands
      • tables.pl
      • prolog_metainference.pl
      • tty.pl
      • check.pl
      • prolog_codewalk.pl
      • optparse.pl
      • make.pl
      • prolog_trace.pl
      • prolog_debug.pl
      • macros.pl
      • exceptions.pl
      • intercept.pl
      • listing.pl -- List programs and pretty print clauses
      • portray_text.pl
      • writef.pl -- Old-style formatted write
      • vm.pl
      • prolog_profile.pl
      • prolog_coverage.pl
      • nb_set.pl -- Non-backtrackable sets
      • prolog_jiti.pl
      • files.pl
      • oset.pl
      • thread.pl -- High level thread primitives
      • zip.pl
      • check_installation.pl -- Check installation issues and features
      • help.pl
      • prolog_autoload.pl
      • readln.pl
 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.