docs/03-reference.markdown @ a9bdea1a9564

Clean up topological-sort

We don't actually need to get the full set of minimal elements on each iteration
because we don't need to break ties.  It'll be faster (and cleaner) to just grab
the first one we find.
author Steve Losh <steve@stevelosh.com>
date Sat, 26 Mar 2016 19:30:09 +0000
parents 9d90efbd8787
children dfba7d90a8a5
# API Reference

The following is a list of all user-facing parts of Bones.

If there are backwards-incompatible changes to anything listed here, they will
be noted in the changelog and the author will feel bad.

Anything not listed here is subject to change at any time with no warning, so
don't touch it.

[TOC]

## Package BONES.PAIP

Test?

### \*CHECK-OCCURS\* (variable)

Whether to perform an occurs check.

### BOUND-P (function)

    (BOUND-P VAR)

Return whether the given variable has been bound.

### CLEAR-DB (function)

    (CLEAR-DB)

### FACT (macro)

    (FACT &REST BODY)

### FAIL (variable)

Failure to unify

### NO-BINDINGS (variable)

A succesful unification, with no bindings.

### QUERY (macro)

    (QUERY &REST GOALS)

Perform the query interactively.

### QUERY-ALL (macro)

    (QUERY-ALL &REST GOALS)

Perform the query and automatically show all results.

### QUERY-ONE (macro)

    (QUERY-ONE &REST GOALS)

Perform the query and just show the first result.

### RETURN-ALL (macro)

    (RETURN-ALL &REST GOALS)

### RETURN-ONE (macro)

    (RETURN-ONE &REST GOALS)

### RULE (macro)

    (RULE &REST CLAUSE)

### UNBOUND (variable)

A magic constant representing an unbound variable.

### UNIFY (function)

    (UNIFY X Y &OPTIONAL (BINDINGS NO-BINDINGS))

Unify the two terms and return bindings necessary to do so (or FAIL).

### UNIFY! (function)

    (UNIFY! X Y)

Destructively unify two expressions, returning whether it was successful.

  Any variables in `x` and `y` may have their bindings set.