Skip to content

A microKanren implementation in Hy with constraints

Notifications You must be signed in to change notification settings

brandonwillard/hypoKanren

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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)

Releases

No releases published

Packages

No packages published