The dataflow language
Turns out that the book I wanted, Lisp in Small Pieces, was already checked out. A little blue book, “Lucid, the Dataflow Programming Language” caught my eye, so I picked it up instead. I’d heard about the language before and found the imperative style but declarative semantics quite intriguing.
I’ve been warming to the idea of lazy evaluation recently; I might try it in my Lisp. It has the nice effect that you can replace a function call with the function body with argument expressions inserted as-is, which is not strictly true with strict evaluation, because it forces the arguments to be evaluated first. This is nice because you can define control structures using plain old functions, they do not even have to be built into the language core.
I’ve been thinking how it might be possible bring some Lucid features into Lisp. For example, a looping construct which iterates the loop variables with Lucid-like semantics (re-ording doesn’t matter). SICP demonstrates infinite lazy streams, which are the same sort of thing as Lucid variables.
I haven’t read much yet due to work and tiredness. I might make some progress this weekend if I can stop playing Continuum!