Subject: Re: ANSI CL proposal: format
From: Erik Naggum <clerik@naggum.no>
Date: 1998/02/27
Newsgroups: comp.lang.lisp
Message-ID: <3097559270219763@naggum.no>


* Kent M Pitman
| No, because LOAD binds *READTABLE* and so you can do [as I often do]:
| 
|  (IN-PACKAGE "MINE")
|  (EVAL-WHEN (:COMPILE-TOPLEVEL :LOAD-TOPLEVEL :EXECUTE)
|     (SETQ *READTABLE* (MY-SPECIALIZED-READTABLE)))

  point taken.  incidentally, this seems like a super candidate for a
  (standard) macro.

| Note if those global resources are partitioned in a way that is "closed
| over".

  point taken.

| The problem is that format strings are a kind of data.  When you see doc
| for ERROR and it says "takes a format string", you need to know "what
| kind?".

  ok, let me back out a bit and suggest that the mechanisms available to
  the FORMATTER macro should be available with a user-specified language.
  that way, FORMAT and all its users and friends continue to work as they
  used to do, but FORMATTER could take an optional second argument with a
  table of some kind that specifies the behavior of each character, so the
  remaining power of the FORMAT language could be utilized.

  the reason people want to extend FORMAT is not to make global changes to
  the formatter, but to be relieved of writing the entire FORMATTER engine
  anew when need something specific.  (at least if I can extrapolate from
  "me" to "people".)  it's a royal pain to create a macro that hacks up a
  string to build another string it passes to FORMATTER so it can be used
  the same way FORMATTER can.  I tried this once with a TIME-FORMATTER, but
  it stranded before I got it general enough to even satisfy myself.  I
  wrote FORMAT-TIME-STRING for Emacs because I hate hard-coded time formats
  that can't be made to format according to ISO 8601, and wanted something
  with similar power and ease.  (another problem with TIME-FORMATTER was
  that it should be able to accept a universal-time OR a list of decoded
  time values, but that's not FORMAT's fault.)

  (and while I'm at it, it would be nice to add LOOP constructs, too.  :)

| Hey, what happened to that #\Erik character?  I'd rather not have this
| conversation again and again with a bunch of Erik clones.

  heh.  I figured #\Erik was _way_ too constant (although EQ-ness was not
  guaranteed).  so now it's a fresh me with every article.  this _may_ be
  an exaggeration in the opposite direction, of course.

#:Erik
-- 
  God grant me serenity to accept the code I cannot change,
  courage to change the code I can, and wisdom to know the difference.