The si-kanren Reference Manual

This is the si-kanren Reference Manual, version 0.1.0, generated automatically by Declt version 4.0 beta 2 "William Riker" on Sun Dec 15 07:42:02 2024 GMT+0.

Table of Contents


1 Introduction


2 Systems

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


2.1 si-kanren

A micro-Kanren implementation in Common Lisp

Author

rgc

License

MIT

Version

0.1.0

Source

si-kanren.asd.

Child Component

src (module).


3 Modules

Modules are listed depth-first from the system components tree.


3.1 si-kanren/src

Source

si-kanren.asd.

Parent Component

si-kanren (system).

Child Components

4 Files

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


4.1 Lisp


4.1.1 si-kanren/si-kanren.asd

Source

si-kanren.asd.

Parent Component

si-kanren (system).

ASDF Systems

si-kanren.

Packages

si-kanren-system.


4.1.2 si-kanren/src/si-kanren.lisp

Source

si-kanren.asd.

Parent Component

src (module).

Packages

si-kanren.

Public Interface
Internals

4.1.3 si-kanren/src/wrappers.lisp

Dependency

si-kanren.lisp (file).

Source

si-kanren.asd.

Parent Component

src (module).

Public Interface
Internals

5 Packages

Packages are listed by definition order.


5.1 si-kanren-system

Source

si-kanren.asd.

Use List
  • asdf/interface.
  • common-lisp.

5.2 si-kanren

Source

si-kanren.lisp.

Use List

common-lisp.

Public Interface
Internals

6 Definitions

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


6.1 Public Interface


6.1.1 Macros

Macro: conde (&rest clauses)
Package

si-kanren.

Source

wrappers.lisp.

Macro: fresh (&rest e)
Package

si-kanren.

Source

wrappers.lisp.

Macro: run (num (&rest queries) &body goals)
Package

si-kanren.

Source

wrappers.lisp.

Macro: run* ((&rest queries) &body goals)
Package

si-kanren.

Source

wrappers.lisp.

Macro: runi ((&rest queries) &body goals)
Package

si-kanren.

Source

wrappers.lisp.


6.1.2 Ordinary functions

Function: =/= (u v)
Package

si-kanren.

Source

si-kanren.lisp.

Function: == (u v)
Package

si-kanren.

Source

si-kanren.lisp.

Function: absento (tag u)
Package

si-kanren.

Source

si-kanren.lisp.

Function: numbero (u)
Package

si-kanren.

Source

si-kanren.lisp.

Function: symbolo (u)
Package

si-kanren.

Source

si-kanren.lisp.


6.2 Internals


6.2.1 Special variables

Special Variable: mzero
Package

si-kanren.

Source

si-kanren.lisp.


6.2.2 Macros

Macro: conj+ (g &rest goals)
Package

si-kanren.

Source

wrappers.lisp.

Macro: disj+ (g &rest goals)
Package

si-kanren.

Source

wrappers.lisp.

Macro: nlet-tail (n letargs &rest body)
Package

si-kanren.

Source

wrappers.lisp.

Macro: runno (num (&rest queries) &body goals)
Package

si-kanren.

Source

wrappers.lisp.

Macro: runno* ((&rest queries) &body goals)
Package

si-kanren.

Source

wrappers.lisp.

Macro: zzz (g)
Package

si-kanren.

Source

wrappers.lisp.


6.2.3 Ordinary functions

Function: a-of (st)
Package

si-kanren.

Source

wrappers.lisp.

Function: absento/u (u tag st s/c d ty a)
Package

si-kanren.

Source

si-kanren.lisp.

Function: bind ($ g)
Package

si-kanren.

Source

si-kanren.lisp.

Function: c-of (st)
Package

si-kanren.

Source

wrappers.lisp.

Function: call/empty-state (g)
Package

si-kanren.

Source

wrappers.lisp.

Function: call/fresh (f)
Package

si-kanren.

Source

si-kanren.lisp.

Function: check-a/t->disequality (ty ab s ds)
Package

si-kanren.

Source

si-kanren.lisp.

Function: coerce->l (v)
Package

si-kanren.

Source

wrappers.lisp.

Function: coerce->v (l)
Package

si-kanren.

Source

wrappers.lisp.

Function: conj (g1 g2)
Package

si-kanren.

Source

si-kanren.lisp.

Function: d-of (st)
Package

si-kanren.

Source

wrappers.lisp.

Function: disequality (u v s st)
Package

si-kanren.

Source

si-kanren.lisp.

Function: disj (g1 g2)
Package

si-kanren.

Source

si-kanren.lisp.

Function: dotted-pair-p (arg)
Package

si-kanren.

Source

wrappers.lisp.

Function: drop-pred-t/a (ty)
Package

si-kanren.

Source

wrappers.lisp.

Function: eigenvalue (v)
Package

si-kanren.

Source

wrappers.lisp.

Function: empty-state ()
Package

si-kanren.

Source

wrappers.lisp.

Function: equal-lists (list1 list2)
Package

si-kanren.

Source

wrappers.lisp.

Function: equalv? (x y)
Package

si-kanren.

Source

si-kanren.lisp.

Function: ext-a (x tag s a)
Package

si-kanren.

Source

si-kanren.lisp.

Function: ext-a-with-pred (x tag pred s a)
Package

si-kanren.

Source

si-kanren.lisp.

Function: ext-s (lvar v s)
Package

si-kanren.

Source

si-kanren.lisp.

Function: ext-ty (x tag pred ty)
Package

si-kanren.

Source

si-kanren.lisp.

Function: filter (f l)
Package

si-kanren.

Source

si-kanren.lisp.

Function: flat-d (d)
Package

si-kanren.

Source

wrappers.lisp.

Function: flatten (x)
Package

si-kanren.

Source

wrappers.lisp.

Function: l>v (l)
Package

si-kanren.

Source

wrappers.lisp.

Function: lvar (c)
Package

si-kanren.

Source

si-kanren.lisp.

Function: lvar-or-atom (v l)

T if v in walking l is another lvar

Package

si-kanren.

Source

wrappers.lisp.

Function: lvar=? (x1 x2)
Package

si-kanren.

Source

si-kanren.lisp.

Function: lvar? (c)
Package

si-kanren.

Source

si-kanren.lisp.

Function: make-pred-a (tag)
Package

si-kanren.

Source

si-kanren.lisp.

Function: make-st (s/c d ty a)
Package

si-kanren.

Source

wrappers.lisp.

Function: make-type-constraint (tag pred)
Package

si-kanren.

Source

si-kanren.lisp.

Function: make-type-constraint/x (u tag pred st)
Package

si-kanren.

Source

si-kanren.lisp.

Function: mapm (f l)
Package

si-kanren.

Source

si-kanren.lisp.

Function: member-nested (el l)

whether el is a member of l, el can be atom or cons, l can be list of atoms or not

Package

si-kanren.

Source

wrappers.lisp.

Function: mk-reify (st)
Package

si-kanren.

Source

wrappers.lisp.

Function: mplus ($1 $2)
Package

si-kanren.

Source

si-kanren.lisp.

Function: norm-cons (xs)
Package

si-kanren.

Source

wrappers.lisp.

Function: norm=lvars (d)
Package

si-kanren.

Source

wrappers.lisp.

Function: normalize (st)
Package

si-kanren.

Source

wrappers.lisp.

Function: normalize-a (st)
Package

si-kanren.

Source

wrappers.lisp.

Function: normalize-conde (st)
Package

si-kanren.

Source

wrappers.lisp.

Function: normalize-d<s/t/a (f s ds st)
Package

si-kanren.

Source

si-kanren.lisp.

Function: normalize-fresh (st)
Package

si-kanren.

Source

wrappers.lisp.

Function: normalize-lists-seen (s ls)
Package

si-kanren.

Source

wrappers.lisp.

Function: normalize-subsumed (tree)
Package

si-kanren.

Source

wrappers.lisp.

Function: normalize-ty (st)
Package

si-kanren.

Source

wrappers.lisp.

Function: null? (x)
Package

si-kanren.

Source

si-kanren.lisp.

Function: pair? (v)
Package

si-kanren.

Source

si-kanren.lisp.

Function: part (tag a x* y*)
Package

si-kanren.

Source

wrappers.lisp.

Function: part/a (a)
Package

si-kanren.

Source

wrappers.lisp.

Function: partition* (a)
Package

si-kanren.

Source

wrappers.lisp.

Function: pred-of (ty)
Package

si-kanren.

Source

si-kanren.lisp.

Function: pull (st)
Package

si-kanren.

Source

wrappers.lisp.

Function: reform-a (a s)
Package

si-kanren.

Source

si-kanren.lisp.

Function: reform-a+ (x a s)
Package

si-kanren.

Source

si-kanren.lisp.

Function: reform-t (ty s)
Package

si-kanren.

Source

si-kanren.lisp.

Function: reify-name (n)
Package

si-kanren.

Source

wrappers.lisp.

Function: reify-s (v s)
Package

si-kanren.

Source

wrappers.lisp.

Function: reify-state/1st-var (st)
Package

si-kanren.

Source

wrappers.lisp.

Function: remove-subsumed (d)
Package

si-kanren.

Source

wrappers.lisp.

Function: s-of (st)
Package

si-kanren.

Source

wrappers.lisp.

Function: s/c-of (st)
Package

si-kanren.

Source

wrappers.lisp.

Function: sort-part (pr)
Package

si-kanren.

Source

wrappers.lisp.

Function: subsumed (v)
Package

si-kanren.

Source

wrappers.lisp.

Function: subsumed-d-pr/a? (u v a s)
Package

si-kanren.

Source

si-kanren.lisp.

Function: subsumed-d-pr/t? (u v ty st)
Package

si-kanren.

Source

si-kanren.lisp.

Function: subtract-s (s^ s)
Package

si-kanren.

Source

si-kanren.lisp.

Function: tag-of (ty)
Package

si-kanren.

Source

si-kanren.lisp.

Function: tag=? (t0 t1)
Package

si-kanren.

Source

si-kanren.lisp.

Function: tag? (tag)
Package

si-kanren.

Source

si-kanren.lisp.

Function: take (n st)
Package

si-kanren.

Source

wrappers.lisp.

Function: take-all (st)
Package

si-kanren.

Source

wrappers.lisp.

Function: the-pos (u s)
Package

si-kanren.

Source

si-kanren.lisp.

Function: ty-of (st)
Package

si-kanren.

Source

wrappers.lisp.

Function: unify (u v s)
Package

si-kanren.

Source

si-kanren.lisp.

Function: unit (st)
Package

si-kanren.

Source

si-kanren.lisp.

Function: unused (v l)
Package

si-kanren.

Source

wrappers.lisp.

Function: v>l (l)
Package

si-kanren.

Source

wrappers.lisp.

Function: walk (u s)
Package

si-kanren.

Source

si-kanren.lisp.

Function: walk* (v s)
Package

si-kanren.

Source

wrappers.lisp.

Function: walk-queries (n st)
Package

si-kanren.

Source

wrappers.lisp.


Appendix A Indexes


A.1 Concepts


A.2 Functions

Jump to:   =  
A   B   C   D   E   F   L   M   N   P   R   S   T   U   V   W   Z  
Index Entry  Section

=
=/=: Public ordinary functions
==: Public ordinary functions

A
a-of: Private ordinary functions
absento: Public ordinary functions
absento/u: Private ordinary functions

B
bind: Private ordinary functions

C
c-of: Private ordinary functions
call/empty-state: Private ordinary functions
call/fresh: Private ordinary functions
check-a/t->disequality: Private ordinary functions
coerce->l: Private ordinary functions
coerce->v: Private ordinary functions
conde: Public macros
conj: Private ordinary functions
conj+: Private macros

D
d-of: Private ordinary functions
disequality: Private ordinary functions
disj: Private ordinary functions
disj+: Private macros
dotted-pair-p: Private ordinary functions
drop-pred-t/a: Private ordinary functions

E
eigenvalue: Private ordinary functions
empty-state: Private ordinary functions
equal-lists: Private ordinary functions
equalv?: Private ordinary functions
ext-a: Private ordinary functions
ext-a-with-pred: Private ordinary functions
ext-s: Private ordinary functions
ext-ty: Private ordinary functions

F
filter: Private ordinary functions
flat-d: Private ordinary functions
flatten: Private ordinary functions
fresh: Public macros
Function, =/=: Public ordinary functions
Function, ==: Public ordinary functions
Function, a-of: Private ordinary functions
Function, absento: Public ordinary functions
Function, absento/u: Private ordinary functions
Function, bind: Private ordinary functions
Function, c-of: Private ordinary functions
Function, call/empty-state: Private ordinary functions
Function, call/fresh: Private ordinary functions
Function, check-a/t->disequality: Private ordinary functions
Function, coerce->l: Private ordinary functions
Function, coerce->v: Private ordinary functions
Function, conj: Private ordinary functions
Function, d-of: Private ordinary functions
Function, disequality: Private ordinary functions
Function, disj: Private ordinary functions
Function, dotted-pair-p: Private ordinary functions
Function, drop-pred-t/a: Private ordinary functions
Function, eigenvalue: Private ordinary functions
Function, empty-state: Private ordinary functions
Function, equal-lists: Private ordinary functions
Function, equalv?: Private ordinary functions
Function, ext-a: Private ordinary functions
Function, ext-a-with-pred: Private ordinary functions
Function, ext-s: Private ordinary functions
Function, ext-ty: Private ordinary functions
Function, filter: Private ordinary functions
Function, flat-d: Private ordinary functions
Function, flatten: Private ordinary functions
Function, l>v: Private ordinary functions
Function, lvar: Private ordinary functions
Function, lvar-or-atom: Private ordinary functions
Function, lvar=?: Private ordinary functions
Function, lvar?: Private ordinary functions
Function, make-pred-a: Private ordinary functions
Function, make-st: Private ordinary functions
Function, make-type-constraint: Private ordinary functions
Function, make-type-constraint/x: Private ordinary functions
Function, mapm: Private ordinary functions
Function, member-nested: Private ordinary functions
Function, mk-reify: Private ordinary functions
Function, mplus: Private ordinary functions
Function, norm-cons: Private ordinary functions
Function, norm=lvars: Private ordinary functions
Function, normalize: Private ordinary functions
Function, normalize-a: Private ordinary functions
Function, normalize-conde: Private ordinary functions
Function, normalize-d<s/t/a: Private ordinary functions
Function, normalize-fresh: Private ordinary functions
Function, normalize-lists-seen: Private ordinary functions
Function, normalize-subsumed: Private ordinary functions
Function, normalize-ty: Private ordinary functions
Function, null?: Private ordinary functions
Function, numbero: Public ordinary functions
Function, pair?: Private ordinary functions
Function, part: Private ordinary functions
Function, part/a: Private ordinary functions
Function, partition*: Private ordinary functions
Function, pred-of: Private ordinary functions
Function, pull: Private ordinary functions
Function, reform-a: Private ordinary functions
Function, reform-a+: Private ordinary functions
Function, reform-t: Private ordinary functions
Function, reify-name: Private ordinary functions
Function, reify-s: Private ordinary functions
Function, reify-state/1st-var: Private ordinary functions
Function, remove-subsumed: Private ordinary functions
Function, s-of: Private ordinary functions
Function, s/c-of: Private ordinary functions
Function, sort-part: Private ordinary functions
Function, subsumed: Private ordinary functions
Function, subsumed-d-pr/a?: Private ordinary functions
Function, subsumed-d-pr/t?: Private ordinary functions
Function, subtract-s: Private ordinary functions
Function, symbolo: Public ordinary functions
Function, tag-of: Private ordinary functions
Function, tag=?: Private ordinary functions
Function, tag?: Private ordinary functions
Function, take: Private ordinary functions
Function, take-all: Private ordinary functions
Function, the-pos: Private ordinary functions
Function, ty-of: Private ordinary functions
Function, unify: Private ordinary functions
Function, unit: Private ordinary functions
Function, unused: Private ordinary functions
Function, v>l: Private ordinary functions
Function, walk: Private ordinary functions
Function, walk*: Private ordinary functions
Function, walk-queries: Private ordinary functions

L
l>v: Private ordinary functions
lvar: Private ordinary functions
lvar-or-atom: Private ordinary functions
lvar=?: Private ordinary functions
lvar?: Private ordinary functions

M
Macro, conde: Public macros
Macro, conj+: Private macros
Macro, disj+: Private macros
Macro, fresh: Public macros
Macro, nlet-tail: Private macros
Macro, run: Public macros
Macro, run*: Public macros
Macro, runi: Public macros
Macro, runno: Private macros
Macro, runno*: Private macros
Macro, zzz: Private macros
make-pred-a: Private ordinary functions
make-st: Private ordinary functions
make-type-constraint: Private ordinary functions
make-type-constraint/x: Private ordinary functions
mapm: Private ordinary functions
member-nested: Private ordinary functions
mk-reify: Private ordinary functions
mplus: Private ordinary functions

N
nlet-tail: Private macros
norm-cons: Private ordinary functions
norm=lvars: Private ordinary functions
normalize: Private ordinary functions
normalize-a: Private ordinary functions
normalize-conde: Private ordinary functions
normalize-d<s/t/a: Private ordinary functions
normalize-fresh: Private ordinary functions
normalize-lists-seen: Private ordinary functions
normalize-subsumed: Private ordinary functions
normalize-ty: Private ordinary functions
null?: Private ordinary functions
numbero: Public ordinary functions

P
pair?: Private ordinary functions
part: Private ordinary functions
part/a: Private ordinary functions
partition*: Private ordinary functions
pred-of: Private ordinary functions
pull: Private ordinary functions

R
reform-a: Private ordinary functions
reform-a+: Private ordinary functions
reform-t: Private ordinary functions
reify-name: Private ordinary functions
reify-s: Private ordinary functions
reify-state/1st-var: Private ordinary functions
remove-subsumed: Private ordinary functions
run: Public macros
run*: Public macros
runi: Public macros
runno: Private macros
runno*: Private macros

S
s-of: Private ordinary functions
s/c-of: Private ordinary functions
sort-part: Private ordinary functions
subsumed: Private ordinary functions
subsumed-d-pr/a?: Private ordinary functions
subsumed-d-pr/t?: Private ordinary functions
subtract-s: Private ordinary functions
symbolo: Public ordinary functions

T
tag-of: Private ordinary functions
tag=?: Private ordinary functions
tag?: Private ordinary functions
take: Private ordinary functions
take-all: Private ordinary functions
the-pos: Private ordinary functions
ty-of: Private ordinary functions

U
unify: Private ordinary functions
unit: Private ordinary functions
unused: Private ordinary functions

V
v>l: Private ordinary functions

W
walk: Private ordinary functions
walk*: Private ordinary functions
walk-queries: Private ordinary functions

Z
zzz: Private macros


A.3 Variables

Jump to:   M   S  
Index Entry  Section

M
mzero: Private special variables

S
Special Variable, mzero: Private special variables