Functional Geekery

Functional Geekery


Functional Geekery Episode 9 - William E. Byrd

May 06, 2014

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.


?feed-stats-post-id=134