[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

read tables

I have a small  complaint  about  read  tables  as  they  currently  are
implemented.  Specifically,  I  really  regret the lack of a global read
table in T, and the apparent lack of any way to construct one.  I happen
to be  inordinantly  fond  of  a  particular  read macro, the TLISP-type
!  comment character.  I have used this in every lisp code file  I  have
written in  the  past  two  years, and will probably use it in every one
I write from now on.  Clearly I want this  read  macro  as  the  default
syntax for !  in my version of T.

Unfortunately, I  can't  have  it,  so  I will have to go through all my
old T files and add  that  (HERALD  ...(READ-TABLE  ...))  thing.   I'll
have to  put  that  in  all my new files, as well, and I'll have to deal
with the fact that I want to use !  comments in my  INIT.T  file,  where
I define the macro.

Well,    O.K..     That's    not    really    that    inconvenient    as
problems go,  but  I  am  moved  to comment on it because in addition to
being mildly annoying it also violates  what  I  have  always  taken  to
be a  fundamental  principle  of lisp-like languages, which also happens
to be one  of  the  prime  reasons  why   I  LIKE  lisp-like  languages.
Roughly, that principle is that you, the programmer, can take the system
the language  designer  thought  was  the  ideal  programming  language,
tranform  it  into  what  you  know  is  in  fact  the ideal programming
language, and  never  trouble  yourself  about  the  differences  again.
Because the  *STANDARD-READ-TABLE*  is a read-only read table, it allows
the language designer to specify a set of defaults but  does  not  allow
the programmer  to  correct  these defaults at the same level.  Instead,
it forces him to deal with the problem  on  a  case-by-case  basis,  and
hence to  be constantly reminded of the distinction between the language
designer's vision of the language and  his  own.   I  submit  that  this
is a  violation  of  the  fundamental  spirit  of lisp, and request that
a way of specifying defaults for character syntax be provided.