docs/03-reference.markdown @ 3a8ee0586fdf

Add destructive unification

Will be used in the PAIP compiler.
author Steve Losh <steve@stevelosh.com>
date Tue, 22 Mar 2016 14:31:35 +0000
parents 2daf5fb2fe92
children 9d90efbd8787
# 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.

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