The paiprolog Reference Manual

This is the paiprolog Reference Manual, generated automatically by Declt version 4.0 beta 2 "William Riker" on Mon Feb 26 17:30:25 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

The main system appears first, followed by any subsystem dependency.


2.1 paiprolog

Source

paiprolog.asd.

Child Components

3 Files

Files are sorted by type and then listed depth-first from the systems components trees.


3.1 Lisp


3.1.1 paiprolog/paiprolog.asd

Source

paiprolog.asd.

Parent Component

paiprolog (system).

ASDF Systems

paiprolog.


3.1.2 paiprolog/package.lisp

Source

paiprolog.asd.

Parent Component

paiprolog (system).

Packages

3.1.3 paiprolog/auxfns.lisp

Dependency

package.lisp (file).

Source

paiprolog.asd.

Parent Component

paiprolog (system).

Public Interface
Internals

3.1.4 paiprolog/patmatch.lisp

Dependency

package.lisp (file).

Source

paiprolog.asd.

Parent Component

paiprolog (system).

Public Interface
Internals

3.1.5 paiprolog/unify.lisp

Dependencies
Source

paiprolog.asd.

Parent Component

paiprolog (system).

Internals

3.1.6 paiprolog/prolog.lisp

Dependencies
Source

paiprolog.asd.

Parent Component

paiprolog (system).

Public Interface

?- (macro).

Internals

3.1.7 paiprolog/prologc.lisp

Dependencies
Source

paiprolog.asd.

Parent Component

paiprolog (system).

Public Interface
Internals

3.1.8 paiprolog/prologcp.lisp

Dependencies
Source

paiprolog.asd.

Parent Component

paiprolog (system).

Internals

3.1.9 paiprolog/prolog-ext.lisp

Dependency

prologc.lisp (file).

Source

paiprolog.asd.

Parent Component

paiprolog (system).

Public Interface
Internals

4 Packages

Packages are listed by definition order.


4.1 paiprolog

Source

package.lisp.

Use List
Public Interface
Internals

4.2 paiprolog.auxfns

Source

package.lisp.

Use List

common-lisp.

Used By List

paiprolog.

Public Interface
Internals

5 Definitions

Definitions are sorted by export status, category, package, and then by lexicographic order.


5.1 Public Interface


5.1.1 Constants

Constant: fail
Package

paiprolog.auxfns.

Source

auxfns.lisp.

Constant: no-bindings
Package

paiprolog.auxfns.

Source

auxfns.lisp.


5.1.2 Macros

Macro: <- (&rest clause)

Add a clause to the data base.

Package

paiprolog.

Source

prologc.lisp.

Macro: <-- (&rest clause)

Retract a same arity clause from the data base, and add a clause to the data base.

Package

paiprolog.

Source

prolog-ext.lisp.

Macro: ?- (&rest goals)
Package

paiprolog.

Source

prolog.lisp.

Macro: define-enumerated-type (type &rest elements)

Represent an enumerated type with integers 0-n.

Package

paiprolog.auxfns.

Source

auxfns.lisp.

Macro: defresource (name &key constructor initial-copies size)
Package

paiprolog.auxfns.

Source

auxfns.lisp.

Macro: defun-memo (fn args &body body)

Define a memoized function.

Package

paiprolog.auxfns.

Source

auxfns.lisp.

Macro: delay (&rest body)

A computation that can be executed later by FORCE.

Package

paiprolog.auxfns.

Source

auxfns.lisp.

Macro: funcall-if (fn arg)
Package

paiprolog.auxfns.

Source

auxfns.lisp.

Macro: once-only (variables &rest body)

Returns the code built by BODY. If any of VARIABLES might have side effects, they are evaluated once and stored in temporary variables that are then passed to BODY.

Package

paiprolog.auxfns.

Source

auxfns.lisp.

Macro: prolog (&rest goals)

Run Prolog in the surrounding Lisp environment which is accessed from lisp functor.

Package

paiprolog.

Source

prolog-ext.lisp.

Macro: prolog-collect ((&rest vars) &body body)

collect all bindings of vars

Package

paiprolog.

Source

prolog-ext.lisp.

Macro: prolog-first ((&rest vars) &body body)

return first bindding of vars

Package

paiprolog.

Source

prolog-ext.lisp.

Macro: read-time-case (first-case &rest other-cases)

Do the first case, where normally cases are specified with #+ or possibly #- marks.

Package

paiprolog.auxfns.

Source

auxfns.lisp.

Macro: with-resource ((var resource &optional protect) &rest body)

Execute body with VAR bound to an instance of RESOURCE.

Package

paiprolog.auxfns.

Source

auxfns.lisp.


5.1.3 Ordinary functions

Function: ? ()
Package

paiprolog.

Source

prologc.lisp.

Function: binding-val (binding)

Get the value part of a single binding.

Package

paiprolog.auxfns.

Source

auxfns.lisp.

Function: binding-var (binding)

Get the variable part of a single binding.

Package

paiprolog.auxfns.

Source

auxfns.lisp.

Function: clear-memoize (fn-name)

Clear the hash table from a memo function.

Package

paiprolog.auxfns.

Source

auxfns.lisp.

Function: compose (&rest functions)
Package

paiprolog.auxfns.

Source

auxfns.lisp.

Function: dbg (id format-string &rest args)

Print debugging info if (DEBUG ID) has been specified.

Package

paiprolog.auxfns.

Source

auxfns.lisp.

Function: dbg-indent (id indent format-string &rest args)

Print indented debugging info if (DEBUG ID) has been specified.

Package

paiprolog.auxfns.

Source

auxfns.lisp.

Function: debug (&rest ids)

Start dbg output on the given ids.

Package

paiprolog.auxfns.

Source

auxfns.lisp.

Function: dequeue (q)

Remove an item from the front of the queue.

Package

paiprolog.auxfns.

Source

auxfns.lisp.

Function: empty-queue-p (q)
Package

paiprolog.auxfns.

Source

auxfns.lisp.

Function: enqueue (item q)

Insert item at the end of the queue.

Package

paiprolog.auxfns.

Source

auxfns.lisp.

Function: extend-bindings (var val bindings)

Add a (var . value) pair to a binding list.

Package

paiprolog.auxfns.

Source

auxfns.lisp.

Function: find-all (item sequence &rest keyword-args &key test test-not &allow-other-keys)

Find all those elements of sequence that match item, according to the keywords. Doesn’t alter sequence.

Package

paiprolog.auxfns.

Source

auxfns.lisp.

Function: find-all-if (predicate sequence &rest args &key from-end start end count key)

Return a copy of sequence with elements not satisfying PREDICATE removed.

Package

paiprolog.auxfns.

Alias for

remove-if-not.

Function: find-anywhere (item tree)

Does item occur anywhere in tree?

Package

paiprolog.auxfns.

Source

auxfns.lisp.

Function: find-if-anywhere (predicate tree)

Does predicate apply to any atom in the tree?

Package

paiprolog.auxfns.

Source

auxfns.lisp.

Function: first-or-nil (x)

The first element of x if it is a list; else nil.

Package

paiprolog.auxfns.

Source

auxfns.lisp.

Function: first-or-self (x)

The first element of x, if it is a list; else x itself.

Package

paiprolog.auxfns.

Source

auxfns.lisp.

Function: flatten (exp)

Get rid of imbedded lists (to one level only).

Package

paiprolog.auxfns.

Source

auxfns.lisp.

Function: force (delay)

Do a delayed computation, or fetch its previously-computed value.

Package

paiprolog.auxfns.

Source

auxfns.lisp.

Function: front (q)
Package

paiprolog.auxfns.

Source

auxfns.lisp.

Function: get-binding (var bindings)

Find a (variable . value) pair in a binding list.

Package

paiprolog.auxfns.

Source

auxfns.lisp.

Function: last1 (list)

Return the last element (not last cons cell) of list

Package

paiprolog.auxfns.

Source

auxfns.lisp.

Function: length=1 (x)

Is x a list of length 1?

Package

paiprolog.auxfns.

Source

auxfns.lisp.

Function: lookup (var bindings)

Get the value part (for var) from a binding list.

Package

paiprolog.auxfns.

Source

auxfns.lisp.

Function: make-binding (var val)
Package

paiprolog.auxfns.

Source

auxfns.lisp.

Function: make-queue ()

Build a new queue, with no elements.

Package

paiprolog.auxfns.

Source

auxfns.lisp.

Function: mappend (fn list)

Append the results of calling fn on each element of list. Like mapcon, but uses append instead of nconc.

Package

paiprolog.auxfns.

Source

auxfns.lisp.

Function: match-variable (var input bindings)

Does VAR match input? Uses (or updates) and returns bindings.

Package

paiprolog.auxfns.

Source

auxfns.lisp.

Function: maybe-add (op exps &optional if-nil)

For example, (maybe-add ’and exps t) returns
t if exps is nil, exps if there is only one, and (and exp1 exp2...) if there are several exps.

Package

paiprolog.auxfns.

Source

auxfns.lisp.

Function: maybe-set-fill-pointer (array new-length)

If this is an array with a fill pointer, set it to new-length, if that is longer than the current length.

Package

paiprolog.auxfns.

Source

auxfns.lisp.

Function: member-equal (item list)
Package

paiprolog.auxfns.

Source

auxfns.lisp.

Function: memo (fn &key key test name)

Return a memo-function of fn.

Package

paiprolog.auxfns.

Source

auxfns.lisp.

Function: memoize (fn-name &key key test)

Replace fn-name’s global definition with a memoized version.

Package

paiprolog.auxfns.

Source

auxfns.lisp.

Function: mklist (x)

If x is a list return it, otherwise return the list of x

Package

paiprolog.auxfns.

Source

auxfns.lisp.

Function: new-symbol (&rest args)

Concatenate symbols or strings to form an uninterned symbol

Package

paiprolog.auxfns.

Source

auxfns.lisp.

Function: not-null (x)
Package

paiprolog.auxfns.

Source

auxfns.lisp.

Function: partition-if (pred list)

Return 2 values: elements of list that satisfy pred, and elements that don’t.

Package

paiprolog.auxfns.

Source

auxfns.lisp.

Function: pat-match (pattern input &optional bindings)

Match pattern against input in the context of the bindings

Package

paiprolog.auxfns.

Source

patmatch.lisp.

Function: queue-contents (q)
Package

paiprolog.auxfns.

Source

auxfns.lisp.

Function: queue-nconc (q list)

Add the elements of LIST to the end of the queue.

Package

paiprolog.auxfns.

Source

auxfns.lisp.

Function: random-elt (seq)

Pick a random element out of a sequence.

Package

paiprolog.auxfns.

Source

auxfns.lisp.

Function: rest2 (x)

The rest of a list after the first TWO elements.

Package

paiprolog.auxfns.

Source

auxfns.lisp.

Function: rest3 (list)

The rest of a list after the first THREE elements.

Package

paiprolog.auxfns.

Source

auxfns.lisp.

Function: reuse-cons (x y x-y)

Return (cons x y), or reuse x-y if it is equal to (cons x y)

Package

paiprolog.auxfns.

Source

auxfns.lisp.

Function: seq-ref (seq index)

Return code that indexes into a sequence, using the pop-lists/aref-vectors strategy.

Package

paiprolog.auxfns.

Source

auxfns.lisp.

Function: side-effect-free? (exp)

Is exp a constant, variable, or function,
or of the form (THE type x) where x is side-effect-free?

Package

paiprolog.auxfns.

Source

auxfns.lisp.

Function: sort* (seq pred &key key)

Sort without altering the sequence

Package

paiprolog.auxfns.

Source

auxfns.lisp.

Function: starts-with (list x)

Is x a list whose first element is x?

Package

paiprolog.auxfns.

Source

auxfns.lisp.

Function: symbol (&rest args)

Concatenate symbols or strings to form an interned symbol

Package

paiprolog.auxfns.

Source

auxfns.lisp.

Function: undebug (&rest ids)

Stop dbg on the ids. With no ids, stop dbg altogether.

Package

paiprolog.auxfns.

Source

auxfns.lisp.

Function: unique-find-if-anywhere (predicate tree &optional found-so-far)

Return a list of leaves of tree satisfying predicate, with duplicates removed.

Package

paiprolog.auxfns.

Source

auxfns.lisp.

Function: variable-p (x)

Is x a variable (a symbol beginning with ‘?’)?

Package

paiprolog.auxfns.

Source

patmatch.lisp.


5.1.4 Standalone methods

Method: print-object ((object var) stream)
Source

prologc.lisp.


5.1.5 Structures

Structure: delay
Package

paiprolog.auxfns.

Source

auxfns.lisp.

Direct superclasses

structure-object.

Direct slots
Slot: value
Readers

delay-value.

Writers

(setf delay-value).

Slot: computed?
Readers

delay-computed?.

Writers

(setf delay-computed?).

Structure: var
Package

paiprolog.

Source

prologc.lisp.

Direct superclasses

structure-object.

Direct methods

print-object.

Direct slots
Slot: name
Initform

(incf paiprolog::*var-counter*)

Readers

var-name.

Writers

(setf var-name).

Slot: binding
Initform

paiprolog::unbound

Readers

var-binding.

Writers

(setf var-binding).


5.2 Internals


5.2.1 Constants

Constant: unbound
Package

paiprolog.

Source

prologc.lisp.


5.2.2 Special variables

Special Variable: *db-predicates*

a list of all predicates stored in the database.

Package

paiprolog.

Source

prolog.lisp.

Special Variable: *dbg-ids*

Identifiers used by dbg

Package

paiprolog.auxfns.

Source

auxfns.lisp.

Special Variable: *occurs-check*

Should we do the occurs check?

Package

paiprolog.

Source

unify.lisp.

Special Variable: *predicate*

The Prolog predicate currently being compiled

Package

paiprolog.

Source

prologc.lisp.

Special Variable: *trail*
Package

paiprolog.

Source

prologc.lisp.

Special Variable: *uncompiled*

Prolog symbols that have not been compiled.

Package

paiprolog.

Source

prologc.lisp.

Special Variable: *var-counter*
Package

paiprolog.

Source

prologc.lisp.


5.2.3 Macros

Macro: def-prolog-compiler-macro (name arglist &body body)

Define a compiler macro for Prolog.

Package

paiprolog.

Source

prologc.lisp.

Macro: deref (exp)

Follow pointers for bound variables.

Package

paiprolog.

Source

prologc.lisp.

Macro: with-stream ((s-var s) &body body)
Package

paiprolog.

Source

prologcp.lisp.

Macro: with-undo-bindings (&body body)

Undo bindings after each expression in body except the last.

Package

paiprolog.

Source

prologcp.lisp.


5.2.4 Ordinary functions

Function: !/0 (cont)

7.8.4

Package

paiprolog.

Source

prologcp.lisp.

Function: </2 (?e1 ?e2 cont)

8.7.3

Package

paiprolog.

Source

prologcp.lisp.

Function: =.. (?term ?list cont)
Package

paiprolog.

Source

prologcp.lisp.

Function: =/2 (?arg1 ?arg2 cont)

8.2.1

Package

paiprolog.

Source

prologcp.lisp.

Function: =:=/2 (?e1 ?e2 cont)

8.7.3

Package

paiprolog.

Source

prologcp.lisp.

Function: =</2 (?e1 ?e2 cont)

8.7.3

Package

paiprolog.

Source

prologcp.lisp.

Function: ==/2 (?x ?y cont)

8.4.1: Are the two arguments EQUAL with no unification, but with dereferencing? If so, succeed.

Package

paiprolog.

Source

prologcp.lisp.

Function: =\=/2 (?e1 ?e2 cont)

8.7.3

Package

paiprolog.

Source

prologcp.lisp.

Function: >/2 (?e1 ?e2 cont)

8.7.3

Package

paiprolog.

Source

prologcp.lisp.

Function: >=/2 (?e1 ?e2 cont)

8.7.3

Package

paiprolog.

Source

prologcp.lisp.

Function: @</2 (?x ?y cont)

8.4.3

Package

paiprolog.

Source

prologcp.lisp.

Function: @=</2 (?x ?y cont)

8.4.4

Package

paiprolog.

Source

prologcp.lisp.

Function: @>/2 (?x ?y cont)
Package

paiprolog.

Source

prologcp.lisp.

Function: @>=/2 (?x ?y cont)
Package

paiprolog.

Source

prologcp.lisp.

Function: \=/2 (?arg1 ?arg2 cont)

8.2.3

Package

paiprolog.

Source

prologcp.lisp.

Function: \==/2 (?x ?y cont)

8.4.2

Package

paiprolog.

Source

prologcp.lisp.

Function: abolish/1 (?pi cont)
Package

paiprolog.

Source

prologcp.lisp.

Function: add-clause (clause &key asserta)

Add a clause to the data base, indexed by head’s predicate.

Package

paiprolog.

Source

prologc.lisp.

Function: anon-vars-in (tree seen-once seen-more)

Walk the data structure TREE, returning a list of variabless seen once, and a list of variables seen more than once.

Package

paiprolog.

Source

prologc.lisp.

Function: anonymous-variables-in (tree)

Return a list of all variables that occur only once in tree.

Package

paiprolog.

Source

prologc.lisp.

Function: arg/3 (?n ?term ?arg cont)

8.5.2

Package

paiprolog.

Source

prologcp.lisp.

Function: args (x)

The arguments of a relation

Package

paiprolog.

Source

prologc.lisp.

Function: asserta/1 (?clause cont)

8.9.1

Package

paiprolog.

Source

prologcp.lisp.

Function: assertz/1 (?clause cont)

8.9.2

Package

paiprolog.

Source

prologcp.lisp.

Function: at-end-of-stream/0 (cont)
Package

paiprolog.

Source

prologcp.lisp.

Function: at-end-of-stream/1 (?stream-or-alias cont)
Package

paiprolog.

Source

prologcp.lisp.

Function: atom-characters/2 (?atom ?characters cont)

for Common Lisp

Package

paiprolog.

Source

prologcp.lisp.

Function: atom-chars/2 (?atom ?list cont)

8.16.4

Package

paiprolog.

Source

prologcp.lisp.

Function: atom-codes/2 (?atom ?codes cont)

8.16.5

Package

paiprolog.

Source

prologcp.lisp.

Function: atom-concat/3 (?atom1 ?atom2 ?atom12 cont)

8.16.2

Package

paiprolog.

Source

prologcp.lisp.

Function: atom-length/2 (?atom ?length cont)

8.16.1

Package

paiprolog.

Source

prologcp.lisp.

Function: atom/1 (x cont)

8.3.2

Package

paiprolog.

Source

prologcp.lisp.

Function: atomic/1 (x cont)

8.3.5

Package

paiprolog.

Source

prologcp.lisp.

Function: atomicp (exp)
Package

paiprolog.

Source

prologcp.lisp.

Function: bagof/3 (exp goal result cont)

8.10.2: Find all solutions to GOAL, and for each solution, collect the value of EXP into the list RESULT.

Package

paiprolog.

Source

prologcp.lisp.

Function: bind-new-variables (bindings goal)

Extend bindings to include any unbound variables in goal.

Package

paiprolog.

Source

prologc.lisp.

Function: bind-unbound-vars (parameters exp)

If there are any variables in exp (besides the parameters) then bind them to new vars.

Package

paiprolog.

Source

prologc.lisp.

Function: bind-variables-in (exp bindings)

Bind all variables in exp to themselves, and add that to bindings (except for variables already bound).

Package

paiprolog.

Source

prologc.lisp.

Function: bound-p (var)
Package

paiprolog.

Source

prologc.lisp.

Function: call/1 (?g cont)

7.8.3: Try to prove goal by calling it.

Package

paiprolog.

Source

prologcp.lisp.

Function: catch/3 (?goal ?catch ?recover cont)

7.8.9

Package

paiprolog.

Source

prologcp.lisp.

Function: char-code/2 (?char ?code cont)

8.16.6

Package

paiprolog.

Source

prologcp.lisp.

Function: clause-body (clause)
Package

paiprolog.

Source

prolog.lisp.

Function: clause-head (clause)
Package

paiprolog.

Source

prolog.lisp.

Function: clause/2 (?head ?body cont)

8.8.1

Package

paiprolog.

Source

prologcp.lisp.

Function: clauses-with-arity (clauses test arity)

Return all clauses whose head has given arity.

Package

paiprolog.

Source

prologc.lisp.

Function: clear-db ()

remove all clauses (for all predicates) from the data base.

Package

paiprolog.

Source

prolog.lisp.

Function: clear-predicate (predicate)

remove the clauses for a single predicate.

Package

paiprolog.

Source

prolog.lisp.

Function: close/1 (?stream-or-alias cont)

8.11.7

Package

paiprolog.

Source

prologcp.lisp.

Function: close/2 (?stream-or-alias ?options cont)

8.11.8

Package

paiprolog.

Source

prologcp.lisp.

Function: compile-arg (arg bindings)

Generate code for an argument to a goal in the body.

Package

paiprolog.

Source

prologc.lisp.

Function: compile-body (body cont bindings)

Compile the body of a clause.

Package

paiprolog.

Source

prologc.lisp.

Function: compile-call (predicate args cont)

Compile a call to a prolog predicate.

Package

paiprolog.

Source

prologc.lisp.

Function: compile-clause (parms clause cont)

Transform away the head, and compile the resulting body.

Package

paiprolog.

Source

prologc.lisp.

Function: compile-if (pred then-part)

Compile a Lisp IF form. No else-part allowed.

Package

paiprolog.

Source

prologc.lisp.

Function: compile-predicate (symbol arity clauses)

Compile all the clauses for a given symbol/arity into a single LISP function.

Package

paiprolog.

Source

prologc.lisp.

Function: compile-unify (x y bindings)

Return 2 values: code to test if x and y unify, and a new binding list.

Package

paiprolog.

Source

prologc.lisp.

Function: compile-unify-variable (x y bindings)

X is a variable, and Y may be.

Package

paiprolog.

Source

prologc.lisp.

Function: compound/1 (x cont)

8.3.6

Package

paiprolog.

Source

prologcp.lisp.

Function: continue-p ()

Ask user if we should continue looking for solutions.

Package

paiprolog.

Source

prolog.lisp.

Function: copy-delay (instance)
Package

paiprolog.auxfns.

Source

auxfns.lisp.

Function: copy-term/2 (?term1 ?term2 cont)

8.5.4

Package

paiprolog.

Source

prologcp.lisp.

Function: copy-var (instance)
Package

paiprolog.

Source

prologc.lisp.

Function: current-input/1 (?stream cont)

8.11.2

Package

paiprolog.

Source

prologcp.lisp.

Function: current-output/1 (?stream cont)

8.11.3

Package

paiprolog.

Source

prologcp.lisp.

Function: current-predicate/1 (?pi cont)
Package

paiprolog.

Source

prologcp.lisp.

Reader: delay-computed? (instance)
Writer: (setf delay-computed?) (instance)
Package

paiprolog.auxfns.

Source

auxfns.lisp.

Target Slot

computed?.

Function: delay-p (object)
Package

paiprolog.auxfns.

Source

auxfns.lisp.

Reader: delay-value (instance)
Writer: (setf delay-value) (instance)
Package

paiprolog.auxfns.

Source

auxfns.lisp.

Target Slot

value.

Function: deref-copy (exp)

Copy the expression, replacing variables with new ones. The part without variables can be returned as is.

Package

paiprolog.

Source

prologcp.lisp.

Function: deref-equal (x y)

Are the two arguments EQUAL with no unification, but with dereferencing?

Package

paiprolog.

Source

prologcp.lisp.

Function: deref-exp (exp)

Build something equivalent to EXP with variables dereferenced.

Package

paiprolog.

Source

prologc.lisp.

Function: destructure-if-then-else (goal)
Package

paiprolog.

Source

prologc.lisp.

Function: expand-pat-match-abbrev (pat)

Expand out all pattern matching abbreviations in pat.

Package

paiprolog.

Source

patmatch.lisp.

Function: explode (symbol)
Package

paiprolog.

Source

prologcp.lisp.

Function: fail-if/1 (relation cont)

8.15.1: Negation by failure: If you can’t prove G, then (not G) true.

Package

paiprolog.

Source

prologcp.lisp.

Function: fail/0 (cont)

7.8.1

Package

paiprolog.

Source

prologcp.lisp.

Function: find-anywhere-if (predicate tree)

does predicate apply to any atom in the tree?

Package

paiprolog.

Source

prolog.lisp.

Function: findall/3 (term goal bag cont)

8.10.1: Find all solutions to GOAL, and for each solution, collect the value of TERM into the list BAG.

Package

paiprolog.

Source

prologcp.lisp.

Function: first-match-pos (pat1 input start)

Find the first position that pat1 could possibly match input, starting at position start. If pat1 is non-constant, then just return start.

Package

paiprolog.

Source

patmatch.lisp.

Function: flush-output/0 (cont)

8.11.9

Package

paiprolog.

Source

prologcp.lisp.

Function: flush-output/1 (?stream-or-alias cont)

8.11.10

Package

paiprolog.

Source

prologcp.lisp.

Function: follow-binding (var bindings)

Get the ultimate binding of var according to bindings.

Package

paiprolog.

Source

prologc.lisp.

Function: functor/3 (?term ?name ?arity cont)

8.5.1

Package

paiprolog.

Source

prologcp.lisp.

Function: get-char/1 (?char cont)

8.12.1

Package

paiprolog.

Source

prologcp.lisp.

Function: get-char/2 (?stream-or-alias ?char cont)

8.12.2

Package

paiprolog.

Source

prologcp.lisp.

Function: get-clauses (pred)
Package

paiprolog.

Source

prolog.lisp.

Function: get-code/1 (?code cont)
Package

paiprolog.

Source

prologcp.lisp.

Function: get-code/2 (?stream-or-alias ?code cont)
Package

paiprolog.

Source

prologcp.lisp.

Function: goal-and-p (goal)
Package

paiprolog.

Source

prologc.lisp.

Function: goal-conjunction-p (goal)
Package

paiprolog.

Source

prologc.lisp.

Function: goal-cut-p (goal)
Package

paiprolog.

Source

prologc.lisp.

Function: goal-disjunction-p (goal)
Package

paiprolog.

Source

prologc.lisp.

Function: goal-if-p (goal)
Package

paiprolog.

Source

prologc.lisp.

Function: goal-if-then-else-p (goal)
Package

paiprolog.

Source

prologc.lisp.

Function: goal-if-then-p (goal)
Package

paiprolog.

Source

prologc.lisp.

Function: goal-or-p (goal)
Package

paiprolog.

Source

prologc.lisp.

Function: has-variable-p (x)

Is there a variable anywhere in the expression x?

Package

paiprolog.

Source

prologc.lisp.

Function: ignore (&rest args)
Package

paiprolog.

Source

prologc.lisp.

Function: implode (list)
Package

paiprolog.

Source

prologcp.lisp.

Function: insert-deref (exp)
Package

paiprolog.

Source

prolog-ext.lisp.

Function: integer/1 (x cont)

8.3.3

Package

paiprolog.

Source

prologcp.lisp.

Function: is/2 (var exp cont)

8.6.1

Package

paiprolog.

Source

prologcp.lisp.

Function: make-= (x y)
Package

paiprolog.

Source

prologc.lisp.

Function: make-anonymous (exp &optional anon-vars)

Replace variables that are only used once with ?.

Package

paiprolog.

Source

prologc.lisp.

Function: make-delay (&key value computed?)
Package

paiprolog.auxfns.

Source

auxfns.lisp.

Function: make-parameters (arity)

Return the list (?arg1 ?arg2 ... ?arg-arity)

Package

paiprolog.

Source

prologc.lisp.

Function: make-predicate (symbol arity)

Return the symbol: symbol/arity

Package

paiprolog.

Source

prologc.lisp.

Function: make-renamed-copy (term)
Package

paiprolog.

Source

prologcp.lisp.

Function: match-and (patterns input bindings)

Succeed if all the patterns match the input.

Package

paiprolog.

Source

patmatch.lisp.

Function: match-if (pattern input bindings)

Test an arbitrary expression involving variables. The pattern looks like ((?if code) . rest).

Package

paiprolog.

Source

patmatch.lisp.

Function: match-is (var-and-pred input bindings)

Succeed and bind var if the input satisfies pred, where var-and-pred is the list (var pred).

Package

paiprolog.

Source

patmatch.lisp.

Function: match-not (patterns input bindings)

Succeed if none of the patterns match the input. This will never bind any variables.

Package

paiprolog.

Source

patmatch.lisp.

Function: match-or (patterns input bindings)

Succeed if any one of the patterns match the input.

Package

paiprolog.

Source

patmatch.lisp.

Function: maybe-add-undo-bindings (compiled-exps)

Undo any bindings that need undoing.
If there are any, bind the trail before we start.

Package

paiprolog.

Source

prologc.lisp.

Function: nl/0 (cont)

8.12.5

Package

paiprolog.

Source

prologcp.lisp.

Function: nl/1 (?stream-or-alias cont)

8.12.6

Package

paiprolog.

Source

prologcp.lisp.

Function: non-anon-variable-p (x)
Package

paiprolog.

Source

prolog.lisp.

Function: nonvar/1 (x cont)

8.3.7

Package

paiprolog.

Source

prologcp.lisp.

Function: nonvarp (exp)
Package

paiprolog.

Source

prologcp.lisp.

Function: number-chars/2 (?number ?list cont)

8.16.7

Package

paiprolog.

Source

prologcp.lisp.

Function: number-codes/2 (?number ?list cont)

8.16.8

Package

paiprolog.

Source

prologcp.lisp.

Function: number/1 (x cont)

8.3.8

Package

paiprolog.

Source

prologcp.lisp.

Function: occurs-check (var x bindings)

Does var occur anywhere inside x?

Package

paiprolog.

Source

unify.lisp.

Function: once/1 (thing cont)

8.15.2

Package

paiprolog.

Source

prologcp.lisp.

Function: open/4 (?source/sink ?mode ?stream ?options cont)

8.11.6

Package

paiprolog.

Source

prologcp.lisp.

Function: pat-match-abbrev (symbol expansion)

Define symbol as a macro standing for a pat-match pattern.

Package

paiprolog.

Source

patmatch.lisp.

Function: predicate (relation)
Package

paiprolog.

Source

prolog.lisp.

Function: print-var (var stream depth)
Package

paiprolog.

Source

prologc.lisp.

Function: prolog-compile (symbol &optional clauses)

Compile a symbol; make a separate function for each arity.

Package

paiprolog.

Source

prologc.lisp.

Function: prolog-compile-symbols (&optional symbols)

Compile a list of Prolog symbols.
By default, the list is all symbols that need it.

Package

paiprolog.

Source

prologc.lisp.

Function: prolog-compiler-macro (name)

Fetch the compiler macro for a Prolog predicate.

Package

paiprolog.

Source

prologc.lisp.

Function: prolog-translate-goals (goals)
Package

paiprolog.

Source

prolog-ext.lisp.

Function: proper-listp (x)

Is x a proper (non-dotted) list?

Package

paiprolog.

Source

prologc.lisp.

Function: prove (goal bindings other-goals)

Return a list of possible solutions to goal.

Package

paiprolog.

Source

prolog.lisp.

Function: prove-all (goals bindings)

Find a solution to the conjunction of goals.

Package

paiprolog.

Source

prolog.lisp.

Function: put-char/1 (?char cont)

8.12.3

Package

paiprolog.

Source

prologcp.lisp.

Function: put-char/2 (?stream-or-alias ?char cont)

8.12.4

Package

paiprolog.

Source

prologcp.lisp.

Function: put-code/1 (?code cont)
Package

paiprolog.

Source

prologcp.lisp.

Function: put-code/2 (?stream-or-alias ?code cont)
Package

paiprolog.

Source

prologcp.lisp.

Function: read/1 (exp cont)
Package

paiprolog.

Source

prologcp.lisp.

Function: real/1 (x cont)

8.3.4

Package

paiprolog.

Source

prologcp.lisp.

Function: relation-arity (relation)

The number of arguments to a relation. Example: (relation-arity ’(p a b c)) => 3

Package

paiprolog.

Source

prologc.lisp.

Function: rename-variables (x)

replace all variables in x with new ones.

Package

paiprolog.

Source

prolog.lisp.

Function: repeat/0 (cont)

8.15.3

Package

paiprolog.

Source

prologcp.lisp.

Function: replace-?-vars (exp)

Replace any ? within exp with a var of the form ?123.

Package

paiprolog.

Source

prolog.lisp.

Function: retract-clause (clause)

Retract a clause from the data base

Package

paiprolog.

Source

prologc.lisp.

Function: retract-same-arity-clause (clause)

Retract a clause from the data base

Package

paiprolog.

Source

prolog-ext.lisp.

Function: retract/1 (?clause cont)

8.9.3

Package

paiprolog.

Source

prologcp.lisp.

Function: rule-based-translator (input rules &key matcher rule-if rule-then action)

Find the first rule in rules that matches input, and apply the action to that rule.

Package

paiprolog.

Source

patmatch.lisp.

Function: run-prolog (procedure cont)

Run a 0-ary prolog procedure with a given continuation.

Package

paiprolog.

Source

prologc.lisp.

Function: segment-match (pattern input bindings &optional start)

Match the segment pattern ((?* var) . pat) against input.

Package

paiprolog.

Source

patmatch.lisp.

Function: segment-match+ (pattern input bindings)

Match one or more elements of input.

Package

paiprolog.

Source

patmatch.lisp.

Function: segment-match-fn (x)

Get the segment-match function for x, if it is a symbol that has one.

Package

paiprolog.

Source

patmatch.lisp.

Function: segment-match? (pattern input bindings)

Match zero or one element of input.

Package

paiprolog.

Source

patmatch.lisp.

Function: segment-matcher (pattern input bindings)

Call the right function for this kind of segment pattern.

Package

paiprolog.

Source

patmatch.lisp.

Function: segment-pattern-p (pattern)

Is this a segment-matching pattern like ((?* var) . pat)?

Package

paiprolog.

Source

patmatch.lisp.

Function: self-cons (x)
Package

paiprolog.

Source

prologc.lisp.

Function: set-binding! (var value)

Set var’s binding to value, after saving the variable in the trail. Always returns t.

Package

paiprolog.

Source

prologc.lisp.

Function: set-input/1 (?stream-or-alias cont)

8.11.4

Package

paiprolog.

Source

prologcp.lisp.

Function: set-output/1 (?stream-or-alias cont)

8.11.5

Package

paiprolog.

Source

prologcp.lisp.

Function: set-stream-position/2 (?stream-or-alias ?position cont)

8.11.14

Package

paiprolog.

Source

prologcp.lisp.

Function: setof/3 (exp goal result cont)

8.10.3: Find all unique solutions to GOAL, and for each solution, collect the value of EXP into the list RESULT.

Package

paiprolog.

Source

prologcp.lisp.

Function: show-prolog-vars (vars bindings other-goals)

Print each variable with its binding.
Then ask the user if more solutions are desired.

Package

paiprolog.

Source

prolog.lisp.

Function: show-prolog-vars/2 (var-names vars cont)

Display the variables, and prompt the user to see
if we should continue. If not, return to the top level.

Package

paiprolog.

Source

prologc.lisp.

Function: single-match-fn (x)

Get the single-match function for x, if it is a symbol that has one.

Package

paiprolog.

Source

patmatch.lisp.

Function: single-matcher (pattern input bindings)

Call the right function for this kind of single pattern.

Package

paiprolog.

Source

patmatch.lisp.

Function: single-pattern-p (pattern)

Is this a single-matching pattern?
E.g. (?is x predicate) (?and . patterns) (?or . patterns).

Package

paiprolog.

Source

patmatch.lisp.

Function: string-atom/2 (?string ?atom cont)

for Common Lisp

Package

paiprolog.

Source

prologcp.lisp.

Function: string-list/2 (?string ?list cont)
Package

paiprolog.

Source

prologcp.lisp.

Function: sub-atom/4 (?atom ?start ?length ?sub-atom cont)

8.16.3

Package

paiprolog.

Source

prologcp.lisp.

Function: subst-bindings (bindings x)

Substitute the value of variables in bindings into x, taking recursively bound variables into account.

Package

paiprolog.

Source

unify.lisp.

Function: term-precedes (x y)
Package

paiprolog.

Source

prologcp.lisp.

Function: throw/1 (?ball cont)

7.8.10

Package

paiprolog.

Source

prologcp.lisp.

Function: top-level-prove (goals)

Prove the list of goals by compiling and calling it.

Package

paiprolog.

Source

prologc.lisp.

Function: true/0 (cont)

7.8.2

Package

paiprolog.

Source

prologcp.lisp.

Function: unbound-var-p (exp)

Is EXP an unbound var?

Package

paiprolog.

Source

prologcp.lisp.

Function: undo-bindings! (old-trail)

Undo all bindings back to a given point in the trail.

Package

paiprolog.

Source

prologc.lisp.

Function: unifier (x y)

Return something that unifies with both x and y (or fail).

Package

paiprolog.

Source

unify.lisp.

Function: unify (x y &optional bindings)

See if x and y match with given bindings.

Package

paiprolog.

Source

unify.lisp.

Function: unify! (x y)

Destructively unify two expressions

Package

paiprolog.

Source

prologc.lisp.

Function: unify-variable (var x bindings)

Unify var with x, using (and maybe extending) bindings.

Package

paiprolog.

Source

unify.lisp.

Function: unify-with-occurs-check/2 (?arg1 ?arg2 cont)

8.2.2

Package

paiprolog.

Source

prologcp.lisp.

Function: unique-find-anywhere-if (predicate tree &optional found-so-far)

return a list of leaves of tree satisfying predicate, with duplicates removed.

Package

paiprolog.

Source

prolog.lisp.

Reader: var-binding (instance)
Writer: (setf var-binding) (instance)
Package

paiprolog.

Source

prologc.lisp.

Target Slot

binding.

Reader: var-name (instance)
Writer: (setf var-name) (instance)
Package

paiprolog.

Source

prologc.lisp.

Target Slot

name.

Function: var-p (object)
Package

paiprolog.

Source

prologc.lisp.

Function: var/1 (x cont)

8.3.1

Package

paiprolog.

Source

prologcp.lisp.

Function: variables-in (exp)

Return a list of all the variables in EXP.

Package

paiprolog.

Source

prolog.lisp.

Function: write/1 (exp cont)
Package

paiprolog.

Source

prologcp.lisp.


5.2.5 Generic functions

Generic Reader: ball (condition)
Package

paiprolog.

Methods
Reader Method: ball ((condition prolog-throw))
Source

prologcp.lisp.

Target Slot

ball.


5.2.6 Conditions

Condition: prolog-throw
Package

paiprolog.

Source

prologcp.lisp.

Direct superclasses

condition.

Direct methods

ball.

Direct slots
Slot: ball
Initargs

:ball

Readers

ball.

Writers

This slot is read-only.


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   !   (   <   =   >   ?   @   \  
A   B   C   D   E   F   G   H   I   L   M   N   O   P   Q   R   S   T   U   V   W  
Index Entry  Section

!
!/0: Private ordinary functions

(
(setf delay-computed?): Private ordinary functions
(setf delay-value): Private ordinary functions
(setf var-binding): Private ordinary functions
(setf var-name): Private ordinary functions

<
<-: Public macros
<--: Public macros
</2: Private ordinary functions

=
=..: Private ordinary functions
=/2: Private ordinary functions
=:=/2: Private ordinary functions
=</2: Private ordinary functions
==/2: Private ordinary functions
=\=/2: Private ordinary functions

>
>/2: Private ordinary functions
>=/2: Private ordinary functions

?
?: Public ordinary functions
?-: Public macros

@
@</2: Private ordinary functions
@=</2: Private ordinary functions
@>/2: Private ordinary functions
@>=/2: Private ordinary functions

\
\=/2: Private ordinary functions
\==/2: Private ordinary functions

A
abolish/1: Private ordinary functions
add-clause: Private ordinary functions
anon-vars-in: Private ordinary functions
anonymous-variables-in: Private ordinary functions
arg/3: Private ordinary functions
args: Private ordinary functions
asserta/1: Private ordinary functions
assertz/1: Private ordinary functions
at-end-of-stream/0: Private ordinary functions
at-end-of-stream/1: Private ordinary functions
atom-characters/2: Private ordinary functions
atom-chars/2: Private ordinary functions
atom-codes/2: Private ordinary functions
atom-concat/3: Private ordinary functions
atom-length/2: Private ordinary functions
atom/1: Private ordinary functions
atomic/1: Private ordinary functions
atomicp: Private ordinary functions

B
bagof/3: Private ordinary functions
ball: Private generic functions
ball: Private generic functions
bind-new-variables: Private ordinary functions
bind-unbound-vars: Private ordinary functions
bind-variables-in: Private ordinary functions
binding-val: Public ordinary functions
binding-var: Public ordinary functions
bound-p: Private ordinary functions

C
call/1: Private ordinary functions
catch/3: Private ordinary functions
char-code/2: Private ordinary functions
clause-body: Private ordinary functions
clause-head: Private ordinary functions
clause/2: Private ordinary functions
clauses-with-arity: Private ordinary functions
clear-db: Private ordinary functions
clear-memoize: Public ordinary functions
clear-predicate: Private ordinary functions
close/1: Private ordinary functions
close/2: Private ordinary functions
compile-arg: Private ordinary functions
compile-body: Private ordinary functions
compile-call: Private ordinary functions
compile-clause: Private ordinary functions
compile-if: Private ordinary functions
compile-predicate: Private ordinary functions
compile-unify: Private ordinary functions
compile-unify-variable: Private ordinary functions
compose: Public ordinary functions
compound/1: Private ordinary functions
continue-p: Private ordinary functions
copy-delay: Private ordinary functions
copy-term/2: Private ordinary functions
copy-var: Private ordinary functions
current-input/1: Private ordinary functions
current-output/1: Private ordinary functions
current-predicate/1: Private ordinary functions

D
dbg: Public ordinary functions
dbg-indent: Public ordinary functions
debug: Public ordinary functions
def-prolog-compiler-macro: Private macros
define-enumerated-type: Public macros
defresource: Public macros
defun-memo: Public macros
delay: Public macros
delay-computed?: Private ordinary functions
delay-p: Private ordinary functions
delay-value: Private ordinary functions
dequeue: Public ordinary functions
deref: Private macros
deref-copy: Private ordinary functions
deref-equal: Private ordinary functions
deref-exp: Private ordinary functions
destructure-if-then-else: Private ordinary functions

E
empty-queue-p: Public ordinary functions
enqueue: Public ordinary functions
expand-pat-match-abbrev: Private ordinary functions
explode: Private ordinary functions
extend-bindings: Public ordinary functions

F
fail-if/1: Private ordinary functions
fail/0: Private ordinary functions
find-all: Public ordinary functions
find-all-if: Public ordinary functions
find-anywhere: Public ordinary functions
find-anywhere-if: Private ordinary functions
find-if-anywhere: Public ordinary functions
findall/3: Private ordinary functions
first-match-pos: Private ordinary functions
first-or-nil: Public ordinary functions
first-or-self: Public ordinary functions
flatten: Public ordinary functions
flush-output/0: Private ordinary functions
flush-output/1: Private ordinary functions
follow-binding: Private ordinary functions
force: Public ordinary functions
front: Public ordinary functions
funcall-if: Public macros
Function, !/0: Private ordinary functions
Function, (setf delay-computed?): Private ordinary functions
Function, (setf delay-value): Private ordinary functions
Function, (setf var-binding): Private ordinary functions
Function, (setf var-name): Private ordinary functions
Function, </2: Private ordinary functions
Function, =..: Private ordinary functions
Function, =/2: Private ordinary functions
Function, =:=/2: Private ordinary functions
Function, =</2: Private ordinary functions
Function, ==/2: Private ordinary functions
Function, =\=/2: Private ordinary functions
Function, >/2: Private ordinary functions
Function, >=/2: Private ordinary functions
Function, ?: Public ordinary functions
Function, @</2: Private ordinary functions
Function, @=</2: Private ordinary functions
Function, @>/2: Private ordinary functions
Function, @>=/2: Private ordinary functions
Function, abolish/1: Private ordinary functions
Function, add-clause: Private ordinary functions
Function, anon-vars-in: Private ordinary functions
Function, anonymous-variables-in: Private ordinary functions
Function, arg/3: Private ordinary functions
Function, args: Private ordinary functions
Function, asserta/1: Private ordinary functions
Function, assertz/1: Private ordinary functions
Function, at-end-of-stream/0: Private ordinary functions
Function, at-end-of-stream/1: Private ordinary functions
Function, atom-characters/2: Private ordinary functions
Function, atom-chars/2: Private ordinary functions
Function, atom-codes/2: Private ordinary functions
Function, atom-concat/3: Private ordinary functions
Function, atom-length/2: Private ordinary functions
Function, atom/1: Private ordinary functions
Function, atomic/1: Private ordinary functions
Function, atomicp: Private ordinary functions
Function, bagof/3: Private ordinary functions
Function, bind-new-variables: Private ordinary functions
Function, bind-unbound-vars: Private ordinary functions
Function, bind-variables-in: Private ordinary functions
Function, binding-val: Public ordinary functions
Function, binding-var: Public ordinary functions
Function, bound-p: Private ordinary functions
Function, call/1: Private ordinary functions
Function, catch/3: Private ordinary functions
Function, char-code/2: Private ordinary functions
Function, clause-body: Private ordinary functions
Function, clause-head: Private ordinary functions
Function, clause/2: Private ordinary functions
Function, clauses-with-arity: Private ordinary functions
Function, clear-db: Private ordinary functions
Function, clear-memoize: Public ordinary functions
Function, clear-predicate: Private ordinary functions
Function, close/1: Private ordinary functions
Function, close/2: Private ordinary functions
Function, compile-arg: Private ordinary functions
Function, compile-body: Private ordinary functions
Function, compile-call: Private ordinary functions
Function, compile-clause: Private ordinary functions
Function, compile-if: Private ordinary functions
Function, compile-predicate: Private ordinary functions
Function, compile-unify: Private ordinary functions
Function, compile-unify-variable: Private ordinary functions
Function, compose: Public ordinary functions
Function, compound/1: Private ordinary functions
Function, continue-p: Private ordinary functions
Function, copy-delay: Private ordinary functions
Function, copy-term/2: Private ordinary functions
Function, copy-var: Private ordinary functions
Function, current-input/1: Private ordinary functions
Function, current-output/1: Private ordinary functions
Function, current-predicate/1: Private ordinary functions
Function, dbg: Public ordinary functions
Function, dbg-indent: Public ordinary functions
Function, debug: Public ordinary functions
Function, delay-computed?: Private ordinary functions
Function, delay-p: Private ordinary functions
Function, delay-value: Private ordinary functions
Function, dequeue: Public ordinary functions
Function, deref-copy: Private ordinary functions
Function, deref-equal: Private ordinary functions
Function, deref-exp: Private ordinary functions
Function, destructure-if-then-else: Private ordinary functions
Function, empty-queue-p: Public ordinary functions
Function, enqueue: Public ordinary functions
Function, expand-pat-match-abbrev: Private ordinary functions
Function, explode: Private ordinary functions
Function, extend-bindings: Public ordinary functions
Function, fail-if/1: Private ordinary functions
Function, fail/0: Private ordinary functions
Function, find-all: Public ordinary functions
Function, find-all-if: Public ordinary functions
Function, find-anywhere: Public ordinary functions
Function, find-anywhere-if: Private ordinary functions
Function, find-if-anywhere: Public ordinary functions
Function, findall/3: Private ordinary functions
Function, first-match-pos: Private ordinary functions
Function, first-or-nil: Public ordinary functions
Function, first-or-self: Public ordinary functions
Function, flatten: Public ordinary functions
Function, flush-output/0: Private ordinary functions
Function, flush-output/1: Private ordinary functions
Function, follow-binding: Private ordinary functions
Function, force: Public ordinary functions
Function, front: Public ordinary functions
Function, functor/3: Private ordinary functions
Function, get-binding: Public ordinary functions
Function, get-char/1: Private ordinary functions
Function, get-char/2: Private ordinary functions
Function, get-clauses: Private ordinary functions
Function, get-code/1: Private ordinary functions
Function, get-code/2: Private ordinary functions
Function, goal-and-p: Private ordinary functions
Function, goal-conjunction-p: Private ordinary functions
Function, goal-cut-p: Private ordinary functions
Function, goal-disjunction-p: Private ordinary functions
Function, goal-if-p: Private ordinary functions
Function, goal-if-then-else-p: Private ordinary functions
Function, goal-if-then-p: Private ordinary functions
Function, goal-or-p: Private ordinary functions
Function, has-variable-p: Private ordinary functions
Function, ignore: Private ordinary functions
Function, implode: Private ordinary functions
Function, insert-deref: Private ordinary functions
Function, integer/1: Private ordinary functions
Function, is/2: Private ordinary functions
Function, last1: Public ordinary functions
Function, length=1: Public ordinary functions
Function, lookup: Public ordinary functions
Function, make-=: Private ordinary functions
Function, make-anonymous: Private ordinary functions
Function, make-binding: Public ordinary functions
Function, make-delay: Private ordinary functions
Function, make-parameters: Private ordinary functions
Function, make-predicate: Private ordinary functions
Function, make-queue: Public ordinary functions
Function, make-renamed-copy: Private ordinary functions
Function, mappend: Public ordinary functions
Function, match-and: Private ordinary functions
Function, match-if: Private ordinary functions
Function, match-is: Private ordinary functions
Function, match-not: Private ordinary functions
Function, match-or: Private ordinary functions
Function, match-variable: Public ordinary functions
Function, maybe-add: Public ordinary functions
Function, maybe-add-undo-bindings: Private ordinary functions
Function, maybe-set-fill-pointer: Public ordinary functions
Function, member-equal: Public ordinary functions
Function, memo: Public ordinary functions
Function, memoize: Public ordinary functions
Function, mklist: Public ordinary functions
Function, new-symbol: Public ordinary functions
Function, nl/0: Private ordinary functions
Function, nl/1: Private ordinary functions
Function, non-anon-variable-p: Private ordinary functions
Function, nonvar/1: Private ordinary functions
Function, nonvarp: Private ordinary functions
Function, not-null: Public ordinary functions
Function, number-chars/2: Private ordinary functions
Function, number-codes/2: Private ordinary functions
Function, number/1: Private ordinary functions
Function, occurs-check: Private ordinary functions
Function, once/1: Private ordinary functions
Function, open/4: Private ordinary functions
Function, partition-if: Public ordinary functions
Function, pat-match: Public ordinary functions
Function, pat-match-abbrev: Private ordinary functions
Function, predicate: Private ordinary functions
Function, print-var: Private ordinary functions
Function, prolog-compile: Private ordinary functions
Function, prolog-compile-symbols: Private ordinary functions
Function, prolog-compiler-macro: Private ordinary functions
Function, prolog-translate-goals: Private ordinary functions
Function, proper-listp: Private ordinary functions
Function, prove: Private ordinary functions
Function, prove-all: Private ordinary functions
Function, put-char/1: Private ordinary functions
Function, put-char/2: Private ordinary functions
Function, put-code/1: Private ordinary functions
Function, put-code/2: Private ordinary functions
Function, queue-contents: Public ordinary functions
Function, queue-nconc: Public ordinary functions
Function, random-elt: Public ordinary functions
Function, read/1: Private ordinary functions
Function, real/1: Private ordinary functions
Function, relation-arity: Private ordinary functions
Function, rename-variables: Private ordinary functions
Function, repeat/0: Private ordinary functions
Function, replace-?-vars: Private ordinary functions
Function, rest2: Public ordinary functions
Function, rest3: Public ordinary functions
Function, retract-clause: Private ordinary functions
Function, retract-same-arity-clause: Private ordinary functions
Function, retract/1: Private ordinary functions
Function, reuse-cons: Public ordinary functions
Function, rule-based-translator: Private ordinary functions
Function, run-prolog: Private ordinary functions
Function, segment-match: Private ordinary functions
Function, segment-match+: Private ordinary functions
Function, segment-match-fn: Private ordinary functions
Function, segment-match?: Private ordinary functions
Function, segment-matcher: Private ordinary functions
Function, segment-pattern-p: Private ordinary functions
Function, self-cons: Private ordinary functions
Function, seq-ref: Public ordinary functions
Function, set-binding!: Private ordinary functions
Function, set-input/1: Private ordinary functions
Function, set-output/1: Private ordinary functions
Function, set-stream-position/2: Private ordinary functions
Function, setof/3: Private ordinary functions
Function, show-prolog-vars: Private ordinary functions
Function, show-prolog-vars/2: Private ordinary functions
Function, side-effect-free?: Public ordinary functions
Function, single-match-fn: Private ordinary functions
Function, single-matcher: Private ordinary functions
Function, single-pattern-p: Private ordinary functions
Function, sort*: Public ordinary functions
Function, starts-with: Public ordinary functions
Function, string-atom/2: Private ordinary functions
Function, string-list/2: Private ordinary functions
Function, sub-atom/4: Private ordinary functions
Function, subst-bindings: Private ordinary functions
Function, symbol: Public ordinary functions
Function, term-precedes: Private ordinary functions
Function, throw/1: Private ordinary functions
Function, top-level-prove: Private ordinary functions
Function, true/0: Private ordinary functions
Function, unbound-var-p: Private ordinary functions
Function, undebug: Public ordinary functions
Function, undo-bindings!: Private ordinary functions
Function, unifier: Private ordinary functions
Function, unify: Private ordinary functions
Function, unify!: Private ordinary functions
Function, unify-variable: Private ordinary functions
Function, unify-with-occurs-check/2: Private ordinary functions
Function, unique-find-anywhere-if: Private ordinary functions
Function, unique-find-if-anywhere: Public ordinary functions
Function, var-binding: Private ordinary functions
Function, var-name: Private ordinary functions
Function, var-p: Private ordinary functions
Function, var/1: Private ordinary functions
Function, variable-p: Public ordinary functions
Function, variables-in: Private ordinary functions
Function, write/1: Private ordinary functions
Function, \=/2: Private ordinary functions
Function, \==/2: Private ordinary functions
functor/3: Private ordinary functions

G
Generic Function, ball: Private generic functions
get-binding: Public ordinary functions
get-char/1: Private ordinary functions
get-char/2: Private ordinary functions
get-clauses: Private ordinary functions
get-code/1: Private ordinary functions
get-code/2: Private ordinary functions
goal-and-p: Private ordinary functions
goal-conjunction-p: Private ordinary functions
goal-cut-p: Private ordinary functions
goal-disjunction-p: Private ordinary functions
goal-if-p: Private ordinary functions
goal-if-then-else-p: Private ordinary functions
goal-if-then-p: Private ordinary functions
goal-or-p: Private ordinary functions

H
has-variable-p: Private ordinary functions

I
ignore: Private ordinary functions
implode: Private ordinary functions
insert-deref: Private ordinary functions
integer/1: Private ordinary functions
is/2: Private ordinary functions

L
last1: Public ordinary functions
length=1: Public ordinary functions
lookup: Public ordinary functions

M
Macro, <-: Public macros
Macro, <--: Public macros
Macro, ?-: Public macros
Macro, def-prolog-compiler-macro: Private macros
Macro, define-enumerated-type: Public macros
Macro, defresource: Public macros
Macro, defun-memo: Public macros
Macro, delay: Public macros
Macro, deref: Private macros
Macro, funcall-if: Public macros
Macro, once-only: Public macros
Macro, prolog: Public macros
Macro, prolog-collect: Public macros
Macro, prolog-first: Public macros
Macro, read-time-case: Public macros
Macro, with-resource: Public macros
Macro, with-stream: Private macros
Macro, with-undo-bindings: Private macros
make-=: Private ordinary functions
make-anonymous: Private ordinary functions
make-binding: Public ordinary functions
make-delay: Private ordinary functions
make-parameters: Private ordinary functions
make-predicate: Private ordinary functions
make-queue: Public ordinary functions
make-renamed-copy: Private ordinary functions
mappend: Public ordinary functions
match-and: Private ordinary functions
match-if: Private ordinary functions
match-is: Private ordinary functions
match-not: Private ordinary functions
match-or: Private ordinary functions
match-variable: Public ordinary functions
maybe-add: Public ordinary functions
maybe-add-undo-bindings: Private ordinary functions
maybe-set-fill-pointer: Public ordinary functions
member-equal: Public ordinary functions
memo: Public ordinary functions
memoize: Public ordinary functions
Method, ball: Private generic functions
Method, print-object: Public standalone methods
mklist: Public ordinary functions

N
new-symbol: Public ordinary functions
nl/0: Private ordinary functions
nl/1: Private ordinary functions
non-anon-variable-p: Private ordinary functions
nonvar/1: Private ordinary functions
nonvarp: Private ordinary functions
not-null: Public ordinary functions
number-chars/2: Private ordinary functions
number-codes/2: Private ordinary functions
number/1: Private ordinary functions

O
occurs-check: Private ordinary functions
once-only: Public macros
once/1: Private ordinary functions
open/4: Private ordinary functions

P
partition-if: Public ordinary functions
pat-match: Public ordinary functions
pat-match-abbrev: Private ordinary functions
predicate: Private ordinary functions
print-object: Public standalone methods
print-var: Private ordinary functions
prolog: Public macros
prolog-collect: Public macros
prolog-compile: Private ordinary functions
prolog-compile-symbols: Private ordinary functions
prolog-compiler-macro: Private ordinary functions
prolog-first: Public macros
prolog-translate-goals: Private ordinary functions
proper-listp: Private ordinary functions
prove: Private ordinary functions
prove-all: Private ordinary functions
put-char/1: Private ordinary functions
put-char/2: Private ordinary functions
put-code/1: Private ordinary functions
put-code/2: Private ordinary functions

Q
queue-contents: Public ordinary functions
queue-nconc: Public ordinary functions

R
random-elt: Public ordinary functions
read-time-case: Public macros
read/1: Private ordinary functions
real/1: Private ordinary functions
relation-arity: Private ordinary functions
rename-variables: Private ordinary functions
repeat/0: Private ordinary functions
replace-?-vars: Private ordinary functions
rest2: Public ordinary functions
rest3: Public ordinary functions
retract-clause: Private ordinary functions
retract-same-arity-clause: Private ordinary functions
retract/1: Private ordinary functions
reuse-cons: Public ordinary functions
rule-based-translator: Private ordinary functions
run-prolog: Private ordinary functions

S
segment-match: Private ordinary functions
segment-match+: Private ordinary functions
segment-match-fn: Private ordinary functions
segment-match?: Private ordinary functions
segment-matcher: Private ordinary functions
segment-pattern-p: Private ordinary functions
self-cons: Private ordinary functions
seq-ref: Public ordinary functions
set-binding!: Private ordinary functions
set-input/1: Private ordinary functions
set-output/1: Private ordinary functions
set-stream-position/2: Private ordinary functions
setof/3: Private ordinary functions
show-prolog-vars: Private ordinary functions
show-prolog-vars/2: Private ordinary functions
side-effect-free?: Public ordinary functions
single-match-fn: Private ordinary functions
single-matcher: Private ordinary functions
single-pattern-p: Private ordinary functions
sort*: Public ordinary functions
starts-with: Public ordinary functions
string-atom/2: Private ordinary functions
string-list/2: Private ordinary functions
sub-atom/4: Private ordinary functions
subst-bindings: Private ordinary functions
symbol: Public ordinary functions

T
term-precedes: Private ordinary functions
throw/1: Private ordinary functions
top-level-prove: Private ordinary functions
true/0: Private ordinary functions

U
unbound-var-p: Private ordinary functions
undebug: Public ordinary functions
undo-bindings!: Private ordinary functions
unifier: Private ordinary functions
unify: Private ordinary functions
unify!: Private ordinary functions
unify-variable: Private ordinary functions
unify-with-occurs-check/2: Private ordinary functions
unique-find-anywhere-if: Private ordinary functions
unique-find-if-anywhere: Public ordinary functions

V
var-binding: Private ordinary functions
var-name: Private ordinary functions
var-p: Private ordinary functions
var/1: Private ordinary functions
variable-p: Public ordinary functions
variables-in: Private ordinary functions

W
with-resource: Public macros
with-stream: Private macros
with-undo-bindings: Private macros
write/1: Private ordinary functions


A.4 Data types

Jump to:   A   C   D   F   P   S   U   V  
Index Entry  Section

A
auxfns.lisp: The paiprolog/auxfns․lisp file

C
Condition, prolog-throw: Private conditions

D
delay: Public structures

F
File, auxfns.lisp: The paiprolog/auxfns․lisp file
File, package.lisp: The paiprolog/package․lisp file
File, paiprolog.asd: The paiprolog/paiprolog․asd file
File, patmatch.lisp: The paiprolog/patmatch․lisp file
File, prolog-ext.lisp: The paiprolog/prolog-ext․lisp file
File, prolog.lisp: The paiprolog/prolog․lisp file
File, prologc.lisp: The paiprolog/prologc․lisp file
File, prologcp.lisp: The paiprolog/prologcp․lisp file
File, unify.lisp: The paiprolog/unify․lisp file

P
Package, paiprolog: The paiprolog package
Package, paiprolog.auxfns: The paiprolog․auxfns package
package.lisp: The paiprolog/package․lisp file
paiprolog: The paiprolog system
paiprolog: The paiprolog package
paiprolog.asd: The paiprolog/paiprolog․asd file
paiprolog.auxfns: The paiprolog․auxfns package
patmatch.lisp: The paiprolog/patmatch․lisp file
prolog-ext.lisp: The paiprolog/prolog-ext․lisp file
prolog-throw: Private conditions
prolog.lisp: The paiprolog/prolog․lisp file
prologc.lisp: The paiprolog/prologc․lisp file
prologcp.lisp: The paiprolog/prologcp․lisp file

S
Structure, delay: Public structures
Structure, var: Public structures
System, paiprolog: The paiprolog system

U
unify.lisp: The paiprolog/unify․lisp file

V
var: Public structures