A unified approach to solving seven programming problems

A fun pearl by William E. Byrd, Michael Ballantyne, Gregory Rosenblatt, and Matthew Might from ICFP: seven programming challenges solved (easily!) using a relational interpreter. One challenge, for example, is to find quines. Another is to find programs that produce different results with lexical vs. dynamic scope.

The interpreter is implemented in miniKanren (of course), inside Racket (of course).

By Ehud Lamm at 2017年09月04日 18:44 | Fun | Functional | Logic/Declarative | other blogs | 46413 reads

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

It would be interesting to

It would be interesting to see how (if?) this approach breaks down in Prolog.

By Ehud Lamm at Mon, 2017年09月04日 19:31 | login or register to post comments

Interactive examples

Hi, I'm one of the authors.

There's an artifact to go along with the paper, which you can use to follow along with the examples as you read.

Nada Amin has also set up an interactive version of the paper, to make following along even easier.

By gregr at Tue, 2017年09月05日 03:00 | login or register to post comments

Thanks. The interactive

Thanks. The interactive version is fun.

By Ehud Lamm at Tue, 2017年09月05日 07:26 | login or register to post comments

Videos for related talks

Spoiler alert: if you would like to go through the paper and figure out how you would approach these problems on your own, before seeing our solution, do so before watching these videos, or you'll ruin the surprise.

The ICFP talk (starting at about the 1hr 11min mark) for this paper is only about 20 minutes long, accessible, and contains plenty of demos.

At the end of the talk, there's a short teaser demo of an IDE we've been working on that incorporates the techniques from the paper. If you'd like to see more of what it can do, a more comprehensive demo of this IDE was given at Clojure/conj 2016.

By gregr at Sat, 2017年09月16日 17:40 | login or register to post comments

AltStyle によって変換されたページ (->オリジナル) /