[racket] style: nested cond (fine!)

From: Eli Barzilay (eli at barzilay.org)
Date: Tue Feb 21 11:25:59 EST 2012

Just now, Matthias Felleisen wrote:
> 
> Eli knows all this -- which is why he wrote that the tool cannot be
> used without human post-processing. It isn't an automatic tool -- it
> must be placed in context.

There are two reasons for not being completely automatic.  The first
is a silly one: I didn't bother making it completely robust: it's easy
to have easy rules that get false positives if there's a human that
goes over the results to weed them out.

The second reason is what Matthias is talking about: a proper script
would need to have a bunch of settings and a way to easily plug
"style filters" in and out.  That could possibly come with a bunch of
pre-configured setups, which would work very well for HtDP since it's
very consistent.

BTW, because of that the HtDP style should also have a bunch of
additional rules that are easy to check -- like a single toplevel
`cond' per function etc.  There are also probably a bunch of
variations for different parts in the book.

In any case, with the above disclaimers in mind, and also noting that
it is a kind of a rough first sketch for proper code, I've put it
here:

  http://tmp.barzilay.org/code-ayatollah.rkt

(Seeing the "code nazi" comment made the above tentative name obvious
to me, since a number of years ago when I worked in a company, I was
called a "Code Ayatollah", which I took as a compliment...)

-- 
          ((lambda (x) (x x)) (lambda (x) (x x)))          Eli Barzilay:
                    http://barzilay.org/                   Maze is Life!

Posted on the users mailing list.