Skip to content
0:00 / 0:00

#minikanren#scheme#logicprogramming

miniKanren - Dan Friedman and William Byrd

ClojureTV

111K subscribers • 136 videos on Hallway

YouTube
  • Recommended by 2 people: 2 on Hacker News.
  • A classic. People kept recommending it from 2013 to 2018.
  • Presented by Dan Friedman and William Byrd

Intermediate. Assumes working knowledge.

9.5K views13 years ago2 recommendations

Programming languagesSoftware designFunctional programmingLanguage design and type systemsLisp and Clojure

Dan Friedman and William Byrd demonstrate miniKanren, a logic programming system for Scheme, showing how to run relations in reverse to generate programs.

In this UnConf talk, Dan Friedman and William Byrd demonstrate the miniKanren logic programming system for Scheme.

Why it's here

2 people recommend this

What people say. Highly recommended as an entertaining and mind-blowing introduction to logic programming and miniKanren.

zalthoron Hacker News • Recommends

On “Explorations in Clojure's core.logic”

Here's a related talk on MiniKanren by Dan Freidman and Will Byrd: link to this video The bits about generating programs using MiniKanren was truly mind blowing.

CamTinon Hacker News • Recommends

On “Reazon – miniKanren for Emacs”

Fun! I highly recommend watching Dan Friedman and William Byrd give their miniKanren conference talk (they've done it a number of times slightly differently) e.g. this one at the "Conj" Clojure convention: link to this video It's really a fun presentation and does a great job introducing logic programming and miniKanren to lay programmers.

programming-talkscurated list on GitHubMentions

Under “Scheme”

miniKanren 00:46:23 by **Dan Friedman & William Byrd** (2013)

u/ricochet1kin r/ProgrammingLanguages • Mentions

On “Thoughts on using unit tests to disambiguate compiled code?”

Barliman using minikanren might be able to do this kind of thing, but this type of code synthesis is still pretty difficult. link to this video

agumonkeyon Hacker News • Mentions

On “Advanced programming languages (2009)”

Beside dependent types, bidirectional (~relational) programming is the only thing that amaze me. Dan Friedman gave talks about minikanren, see link to this video I couldn't find the one where he asks (eval exp '()) to be 6 and gets many results such as 6 ;; duh (let ((_ 5)) ((lambda (x) (+ x 1)) _)) ;; better Here's an example involving cons cells only link