[plt-scheme] Scribble Problem in PLT Scheme 4.1.5

From: Eli Barzilay (eli at barzilay.org)
Date: Sat Apr 25 14:40:41 EDT 2009

On Apr 25, Doug Williams wrote:
> I'll do a quick reload of all my packages and see if any others
> fail. I'll fix those immediately by using square brackets. It will
> take a bit longer to change all the other instances, but they don't
> fail.

Just to clarify that square vs curly braces issue (which is not the
problem you're running against):

Every use of braces on an @-form means that the body is parsed as
text.  This means that when itemize is used like this:

  @itemize{
    @item{foo}
    @item{bar}}

then the actual form that is read has a newline string in it (not
spaces, since it ignores spaces that are used throughout the form).
To see exactly what it reads, do this:

   > #reader scribble/reader
     '@itemize{
        @item{foo}
        @item{bar}}
   (itemize (item "foo") "\n" (item "bar"))

In contrast to that, square brackets are used for "Scheme-mode"
arguments.  The thing is that @-forms have the same meaning in either
text or scheme mode, so the items can still look the same, and the
only difference in this case when brackets are used is the lack of
newlines:

  > #reader scribble/reader
     '@itemize[
        @item{foo}
        @item{bar}]
  (itemize (item "foo") (item "bar"))

In the beginning Matthew was not aware of this feature, and I was not
aware of its utility in this case, so he made @itemize ignore
whitespace arguments, and @itemize uses in the documentation were all
using braces.  Recently I went over all the sources and change all of
the braces to brackets -- not because it is needed, but because it
just "happens" to work now, so it's better to improve the plt sources
since that's probably the first place people look into for examples.

[Oh, and from the fact that I did this for the all scrbl files in the
PLT tree you can learn that I'm really good at using Emacs for such
things -- so if you want to change your source too, feel free to send
me a tgz of the files and I'll do that.  It really does take a very
short time to do it.]

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


Posted on the users mailing list.