Subject: Re: PROGN considered intrusive?
From: Erik Naggum <>
Date: 1999/03/22
Newsgroups: comp.lang.lisp
Message-ID: <>

* Vassil Nikolov <>
| I would have problems with IF* (or however one might call it).  (I have
| the same (psychological) problems with LOOP---with all these
| deparenthesised keywords its syntax appears `brittle' to me, so
| personally I find its use justified only when it offers useful
| functionality in simple syntax, like COLLECT,--- when things get more
| complicated with a DO.)

  I happen to like IF and (extended) LOOP, but the curious thing is that
  the proponents of IF* hate (extended) LOOP.  I actually have a very hard
  time understanding the arguments in favor of IF* (it actually expands
  into a COND which I find very readable, in particular after teaching the
  pretty printer to indent the body of clause two more spaces), and I have
  a very hard time reading IF* code trying to figure out what happens with
  with THENRET, ELSEIF, and whatnot, but not with the COND expansion.

  however, there is probably a real concern somewhere in there (despite the
  "I don't _want_ to like IF, WHEN, UNLESS, or COND!" it sounds like), and
  I thought maybe it could have been PROGN.  the important thing is that
  there's a culture of IF* users that I'd _like_ to work with, but I'm
  getting overpowering urges to fix it all the time when I look at such
  code.  so I was appealing to the general Lisp community for a means to
  solve an underlying problem, which would remove or seriously weaken the
  rationale for IF*.

| ... I think all CL forms that could have an implicit progn in the body do
| so.  IF obviously couldn't.

  well, not that this is important, but IF _could_ take an implicit PROGN
  in the else part.  MACLISP did, and Emacs Lisp (consequently) does.

| In any case, {} makes more sense than IF* to me.  (I might use {} but I
| wouldn't use IF*.)

  FWIW, thanks.