~/talk

Introduction to Logic Programming with Clojure

Talkat Clojure/conj 2011 · 2011-11-10..11-12· [clojure]
links:none on file
slides:none on file

Hands-on introduction to Clojure's logic engine core.logic showing how relations use backtracking, substitutions and unification (the run/fresh/unify primitives) to generate zero or more answers. Builds a Peano-style natural number generator that yields six values when queried and a small simply-typed lambda calculus type-determiner that can produce four distinct expressions of type integer; demonstrates a cheeky bug where an environment entry is returned as a valid solution. Works live and explains why search strategy and choice points matter.

AI-written summary · about

  1. 0:00Intro
  2. 2:02Introduction to Logic Programming
  3. 2:48Pure Functions
  4. 4:14Relations
  5. 5:49Converting a Function to a Relation
  6. 9:12Logic Language Implementation
  7. 9:38Execution Strategy - Branches
  8. 10:20Execution Strategy - Failure
  9. 11:00Execution Strategy - Leaf Nodes
  10. 11:37Encapsulated Search
  11. 13:13Functional Approach
  12. 16:17Fundamental Goals
  13. 17:47Unification
  14. 18:58Initialising Logic Variables
  15. 19:56Choice points
  16. 22:54Relational Arithmetic
  17. 24:45Numbers
  18. 28:43Tracing Execution
  19. 30:48Type Checker..
  20. 32:08Type Inferencer...
  21. 33:09Code Generator..
  22. 35:51Resources
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.