Logic Programming with MiniKanren

Table of Contents

1. Logic Programming with MiniKanren

verified · pilot-annotation-pass · 2026-10-08

MiniKanren is a minimalistic logic programming language that makes it easy to write and reason about relational programs.

1.1. Course Syllabus

1.1.1. Week 1: Intro to MiniKanren

  • Exercise 1: Intro to MiniKanren
  • Exercise 2: Unification and Backtracking

1.1.2. Week 2: Representing Data in MiniKanren

  • Exercise 1: Representing Data in MiniKanren
  • Exercise 2: Building Complex Data Structures

1.1.3. Week 3: Basic Search Strategies

  • Exercise 1: Depth-First Search
  • Exercise 2: Breadth-First Search

1.1.4. Week 4: Advanced Search Strategies

  • Exercise 1: Iterative Deepening
  • Exercise 2: Heuristic Search

1.1.5. Week 5: Using Constraint Logic Programming

verified · pilot-annotation-pass · 2026-10-08
  • Exercise 1: Constraints and the Finite Domain Solver
  • Exercise 2: Constraints and Infinite Domains

1.1.6. Week 6: Working with Infinite Streams

  • Exercise 1: Lazy Evaluation and Streams
  • Exercise 2: Building Infinite Data Structures

1.1.7. Week 7: Working with State and Side Effects

  • Exercise 1: Representing State in MiniKanren
  • Exercise 2: Writing Stateful Programs

1.1.8. Week 8: Designing Domain-Specific Languages

  • Exercise 1: Building a DSL
  • Exercise 2: Extending an Existing DSL

1.1.9. Week 9: Creating Logic Puzzles

  • Exercise 1: Building a Sudoku Solver
  • Exercise 2: Creating a Logic Puzzle Generator

1.1.10. Week 10: Creating Games

  • Exercise 1: Building a Tic-Tac-Toe Game
  • Exercise 2: Building a Chess Game

1.1.11. Week 11: Creating Web Applications

  • [Exercise 1: Building a Web Scraper](week11/exercise1_building_a

Seen at

  • Clojure/Conj 2026 — Applied Logic Programming: forward-chaining Clara Rules, set against miniKanren's relational search.

2. Related