home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #27 / NN_1992_27.iso / spool / comp / lang / lisp / 2902 < prev    next >
Encoding:
Text File  |  1992-11-17  |  4.2 KB  |  87 lines

  1. Newsgroups: comp.lang.lisp
  2. Path: sparky!uunet!charon.amdahl.com!pacbell.com!ames!agate!spool.mu.edu!mixcom.com!wstar.mixcom.com!jpf
  3. From: jpf@wstar.mixcom.com (John P. Flanagan)
  4. Subject: Re: *READ-SUPPRESS* and #P syntax
  5. Message-ID: <1992Nov18.000646.1180@wstar.mixcom.com>
  6. Date: Wed, 18 Nov 1992 00:06:46 GMT
  7. References: <1992Nov11.201954.825@wstar.mixcom.com> <1duhk5INNqg6@early-bird.think.com> <1992Nov15.210151.1062@wstar.mixcom.com> <1e934iINNaod@early-bird.think.com>
  8. Organization: WaveStar Technology
  9. Lines: 76
  10.  
  11. barmar@think.com (Barry Margolin) writes:
  12.  
  13. >Those comments are just what you said they are: Steele's comments.  They
  14. >are not part of the standard, nor are they binding on implementors.  If we
  15. >want to require that all implementors perform similarly in this respect, we
  16. >must make them official by changing the draft accordingly.
  17.  
  18. Of course his comments aren't binding on implementors, I didn't
  19. reference them because I thought they were.  In the absence of a clear
  20. specification, Steele's comments seemed (at least to me) to be a
  21. sensible, rational interpretation.  The #P confusion will probably be
  22. resolved by the time the standard rolls around, but it's unlikely that
  23. *all* such unspecified gaps in the spec will be completely filled in by
  24. then.  It's therefore the implementor's responsibility to make *the*
  25. rational (better word?)  choices until the draft officially decrees
  26. otherwise.  Signaling an error when reading an expression like #+EXCL
  27. #P(:type ".lsp") is not what I'd call a reasonable implementation
  28. choice, especially when it's the Lisp user who has to endure the
  29. consequences.  I've probably worn this poor thread out by now, but maybe
  30. it's time to resurrect the validation suite idea to certify conformance,
  31. after all, everything can't be reduced to the spoken word.
  32.  
  33. >I'll submit a review comment to this effect.
  34.  
  35. Thanks (my batch went out this morning).
  36.  
  37. >>Similar reasoning should also apply to the #C, #(, and #' macros although
  38. >>an example involving the #( reader macro on p.23-22, section 23.2 of the
  39. >>dpANS appears to suggest otherwise, i.e., #(a b c) becomes #(nil nil nil) 
  40. >>rather than nil.  The last paragraph before the examples says, "#( notation
  41. >>continues to delimit vectors"; it doesn't say, "#( notation continues to
  42. >>delimit [and construct] vectors" as is true with parentheses.
  43.  
  44. >My interpretation of *READ-SUPPRESS* is that when it doesn't say something
  45. >operates differently from normal, it should operate the normal way.  Thus,
  46.  
  47. Maybe it's the cloudy weather affecting my judgement, but since nearly
  48. all sharp reader macros behave a certain way when *read-suppress* is
  49. non-nil, why then would you assume that a sharp reader macro that slipped
  50. through the specification net wouldn't behave in a similar manner?
  51.  
  52. Normally these two expressions produce a vector of two elements, the symbols
  53. foo and bar, but when *read-suppress* is non-nil we get this instead?
  54.  
  55.     #1A(foo bar)
  56.     => nil
  57.  
  58.     #(foo bar)
  59.     => #(nil nil)
  60.  
  61. Isn't this a bit inconsistent (if not confusing)?
  62.  
  63. >#( continues to construct vectors because it doesn't say that it doesn't.
  64. >Notice that when it's describing (, the words "and construct" are in
  65.                                                 ^^^^^^^^^^^^^
  66.                         In Draft 12.24, X3J13/92-102
  67.                         this is not in parentheses.
  68.  
  69. >parentheses.  I interpret this to mean that it's just stating the obvious;
  70. >it wasn't repeated in the following sentence because it's even more obvious
  71. >because it was stated explicitly but parenthetically in the previous
  72. >sentence.
  73.  
  74. Evidently others (besides me) do not share this interpretation, e.g.,
  75. CMU returns nil instead of a vector.  If you're saying that the #(
  76. notation should continue to construct vectors partly because the (
  77. notation does, but mostly because it doesn't say not to, in spite of the
  78. fact that the more similar #A notation doesn't, well, I'll wait for the
  79. book (or the movie) to come out, maybe I'll understand it then.  ;-)
  80.  
  81. -jpf.
  82. -- 
  83.    __________________________________________________________________________
  84.    WaveStar Technology           WaveStar Common Lisp        John P. Flanagan
  85.    W344 N6855 Bayberry Court     ANSI-12.24, X3J13/92          (414) 367-5014
  86.    Oconomowoc, WI  53066         HPUX-800/700/400/300    jpf@wstar.mixcom.com
  87.