Scheme newslore

Lately, reading comp.lang.scheme is more amusing and instructive than ever. Scheme is (as Albert Einstein would put it) as simple as possible, but not simpler. Or, to use the words of Michael Vanier, it is an LFSP rather than an LFM. Which means that it has its (often necessary) subtleties and shadowy corners. Some newcomers in the newsgroup are making a serious effort at learning Scheme, and stumbling upon those corners, which are being subsequently illuminated with insightful posts. For instance,

When are two objects equal? As you probably know, Scheme comes with several equality predicates: EQ?, EQV?, EQUAL?, =, STRING=?… How so? Aren’t all equal objects equal? Well, as it happens, some equal objects are more equal than others. Perhaps, like me, you think that you understand the differences between those predicates; and perhaps, like me, you’ll discover that you were missing some small print after reading this Socratic dialogue between a hacker and a newbie, which summarises an interesting thread with participants as insightful as Berkeley’s professor Brian Harvey. After reading his posts, you may be interested in viewing his SICP classes too.

Concrete AbstractionsClosures are of paramount importance to functional programming. As a matter of fact, object oriented programming can arguably be described as a poor man’s closure-based programming. Max Hailperin has written today a beautiful overview of what closures are and how they are implemented. Again, i thought i already knew. If you enjoy Max’s writing, this is your lucky day: he is one the authors of Concrete Abstractions, an introduction to CS using Scheme freely available in the link above.

Update: There’s also accompanying material for a course by Max, based on Concrete Abstractions, here and here.

Tags:

Sketchy LISP Vol. II

Sketchy LISP Vol. II – Reference is available. From the introduction:

Sketchy is an interpreter for a purely applicative dialect of Scheme. It may be considered an implementation of pure LISP plus global definitions, first-class continuations and input/output functions. Like its first volume, this part focuses on the functional aspects of the Scheme language. While the first volume provides a step-by-step introduction to Scheme in general, this part describes the Sketchy subset as a formal system for re-writing terms. It introduces semi-formal definitions for Scheme data, programs, a small set of primitive functions, and a set of rules for reducing purely applicative expressions to normal forms.

As you can see, this second volume contains more advanced stuff, and gives you yet another opportunity of digging deeper into abstract thinking. I just ordered my copy, but the full text is available online if you’d rather save twelve bucks.

Tags: , , ,

Sketchy LISP

Sketchy
Nils M Holm has just publised Volume 1 of his Sketchy LISP series, a condensed introduction to functional programming using (a subset of) Scheme.

The book is freely available online, but, according to the author, nothing prevents you to buy a printed copy.

I’ve just skimmed over it, but looks like a nice and quick introduction to the best language ever in just a hundred pages or so.

Tags: ,

Follow

Get every new post delivered to your Inbox.

Join 29 other followers