Other Pages

Thanks

How to use this Tutorial

This tutorial is meant to be used with a Clojure REPL handy. An example project has been set up.

Clone with:

git clone git@github.com:frenchy64/Logic-Starter.git

You should be able to run all code examples in the logic-introduction.core namespace.

Quick note on formatting

If any code examples appear to be missing pairs of square braces, please check the wiki source and separate each brace with a space (ie. [ [ and ] ]). If you know how to escape this character sequence in a code block with Markdown, please let me know.

Introduction

Welcome!

In the following sections, we will explore an implementation of miniKanren, a logic
programming system.

The result tells us that geto always searches to the end of the environment vector, collecting results along the way,
regardless of whether it found a match previously.

This seems inefficient.

Advanced, non-relational variants of conde allow control over how many clauses are executed,
trimming results for increased efficiency. This comes at the cost of flexibility, so they should be used carefully.
(see conda and conde in The Reasoned Schemer)