Slash Boxes
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

ziggy (25)

  (email not shown publicly)
AOL IM: ziggyatpanix (Add Buddy, Send Message)

Journal of ziggy (25)

Wednesday June 30, 2004
10:19 PM

Lisp: An idea whose time has come

[ #19612 ]
I've been following Paul Graham ever since he posted his first essay online. It's certainly interesting to read what he has to say (whether you agree or disagree with it). It's also interesting to see people dropping references to him hither and yon.

Case in point: I just ran across this in the SQLite 3 Overview:

In most other SQL database engines the datatype is associated with the table column that holds the data - with the data container. In SQLite 3.0, the datatype is associated with the data itself, not with its container. Paul Graham in his book ANSI Common Lisp calls this property "Manifest Typing". Other writers have other definitions for the term "manifest typing", so beware of confusion. But by whatever name, that is the datatype model supported by SQLite 3.0.

There are dozens of other possible references for this behavior. It's the type model used in Perl, as well as many other dynamic languages. But somehow invoking the name Paul Graham makes the idea less scary to those who take issue with this unorthodox database behavior.

I'm taking bets on how long before there is a groundswell to invoke the name of Paul Graham as a justification for a full-fledged macro system, or continuation-based web frameworks. ;-)

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
More | Login | Reply
Loading... please wait.
  • Give me a week or two and I'll post something about web application frameworks, Perl, and continuations (I'm finishing up work for another release of some code). I'll have to figure out how to get his name into the posting.
  • ...continuation-based web frameworks

    Continuations are one of the things (among others, I'm told) that Ruby borrowed from Lisp. At least one framework, Borges [], uses continuations as a way to deal with state.

    Unfortunately, I'm not one of those people smart enough to figure out how I can use continations to my advantage in daily work.

    • Almost every web app spends most of its time just recreating a state that it understands. And the logic of transitions between pages have to be unrolled into a big switch statement up front.

      If perl 7 had continuations, you could do this:


      # website that sells t-shirts

      $user =;


      if ($user.t_shirts) {
         show_shirts();  # each shirt has a buy button
         if ($user.show_close_up) {