From ... Path: newsfeed.google.com!newsfeed.stanford.edu!news.tele.dk!134.222.94.5!npeer.kpnqwest.net!nreader1.kpnqwest.net.POSTED!not-for-mail Newsgroups: comp.lang.lisp Subject: Re: writing out expressions prepended by #. References: <3AE9EEC3.13F4B3ED@genworks.com> <3197414092128104@naggum.net> Mail-Copies-To: never From: Erik Naggum Message-ID: <3197580855623450@naggum.net> Organization: Naggum Software, Oslo, Norway Lines: 35 User-Agent: Gnus/5.0808 (Gnus v5.8.8) Emacs/20.7 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Date: Mon, 30 Apr 2001 00:54:15 GMT X-Complaints-To: newsmaster@Norway.EU.net X-Trace: nreader1.kpnqwest.net 988592055 195.0.192.66 (Mon, 30 Apr 2001 02:54:15 MET DST) NNTP-Posting-Date: Mon, 30 Apr 2001 02:54:15 MET DST Xref: newsfeed.google.com comp.lang.lisp:9445 * Kent M Pitman > The only problem with this is that there is a convention (not sure if > it's documented or not) that # should be followed by exactly one > readable token, for the case of making #- skip the right number of tokesn > in a place where the object is not implemented. I do not agree with this. Input to the reader that use these notations either have an in-syntax form at the top to establish the readtable, and that would fail before #- would fail, or operate under an assumption made explicit elsewhere if not in the input stream that such readtables are employed. > The other advantage of the #S approach is that if the parser is > proprietary for things like an IP address or a URL, it's easier to > conjure a "parser" for #S-style structures (since it's just an > application of GETF) than for the other notations you suggest, even if > they are more compact. Compactness is not the driving concern. The driving concern is the ability to register types (or whatever else is suitable) so that the syntax is _not_ open-ended as far as the reading process is concerned, such as #. is. #. also returns objects of type t, whatever is returned as the primary value of the form evaluated, which may be a strain on the human reader of the code. #/.../ would return objects of a known type, identified by name. #S has this feature, but it requires a parsed-out list of arguments. There are good reasons we invent new syntaxes, such as for pathnames, symbols-with-packages, etc, even though they have some costs: e.g., #S(symbol :name "FOO" :package "BAR") is conceptually the same as bar:foo. #:Erik -- I found no peace in solitude. I found no chaos in catastrophe. -- :wumpscut: