|
In this episode I talk with William Byrd. We talk about miniKanren and the differences between functional, logic and relational programming. We also cover the idea of thinking at higher levels of abstractions, and comparisons of relational programming to topics such as SQL, property testing, and code contracts.
Our Guest, William Byrd
http://webyrd.net/ http://github.com/webyrd @webyrd on Twitter and webyrd@gmail.com
Topics
U Combinator Lab miniKanren
Will’s overview of how he got into LISP and Relational Programming Daniel Friedman and Indiana University
Logic Programming Zebra Puzzle – Who owns the Zebra?
Oleg Kiselyov The Reasoned Schemer
Purely Relational Arithmetic System
The Ability to Reorder Statements and Keep the Same Semantics
Functional vs Logic vs Relational core.logic Interview of Will on InfoQ
How Far Can We Get Being Purely Declarative
Constraint Logic Programming
Bob Harpers’ Post on Static vs Dynamic Typing
Analogies Between Typing and Logic Programming
Dependent Type Systems, e.g. Agda and Idris
The Discovery of Functional Programming and Signs of Logic Programming Functional JavaScript by Fogus – (Note: There was Episode with Fogus on Functional JavaScript)
Trying to Understand the Implementation of miniKanren to Understand Thinking Operationally
The ability to be able to let go of implementation details and think at a more abstract level
Pointers on Where to Dig Into Relational Programming miniKanren.org – For all things miniKanren Will’s Dissertation
Scheme Workshop Paper
Will is Working on a Book as Starting Place for Relational Programming The Art of Prolog Prolog Programming for Artificial Intelligence by Ivan Bratko
Thanks to Everyone Who Has Worked on miniKanren
Clojure/Conj and Strangeloop talks on miniKanren
A giant Thank You to David Belcher for the logo design.
|