Skip to content
A microKanren implementation in Hy with constraints
Hy Python
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
hypoKanren
tests
.gitignore
LGPL
README.md
conftest.py
setup.cfg
setup.py

README.md

hypoKanren

An implementation of microKanren with constraints in Hy.

Currently, this project serves as a staging ground for a possible large-scale refactoring of the main miniKanren-in-Hy project, loghyc (soon to be formerly known as adderall).

Design

Efforts to better utilize Python and Hy features within this implementation are ongoing, but—to start—the stream processing and delayed goal evaluation are, naturally, implemented with Python generators, and some uses of association lists have been replaced by immutable dictionaries (via pyrsistent) and/or custom classes.

Outside of the miniKanren DSL, this project attempts to share some of the internal API (e.g. stream and utility function names and signatures) with the published implementations.

Features

  • Standard microKanren with some basic miniKanren goals (e.g. run, fresh, conde)
  • Constraints (e.g. =/=, absento, symbolo)
You can’t perform that action at this time.