25 February 2012




I have often blogged about Kernel, John Shutt's Scheme-like language.

Lisp becomes Digrasp?

One interesting thing about Kernel is that it treats pairs rather than lists as fundamental. Consequently, digraphs constructed from pairs have a certain fundamental status too. Most operations in Kernel allow arbitrary digraphs if they allow pairs. OK, dotted graphs seem to be second class objects. But as long as every cdr points to a pair or nil, you can pass it almost anywhere that accepts a pair.

So rather than LISt Processing, it's like DIrected GRAph ProceSsing. OK, the acronym's not perfect, but it sounds better than DIGRAP and echoes LISP.


  1. Stating this plainly makes all the support for circularity make sense. I had previously thought of it as an incidental "oh that's nice too" feature. I guess I had been thinking in terms of graphs produced by immutable pairs as fundamental, and circularity as a "trick" that you could get by mutation.

  2. "dotted graphs seem to be second class objects" — would you care to elaborate on that?

    1. My elaboration got a little long for a comment so it will be the next post.