Subject: Re: ANSI spec brain damaged wrt case in dispatch macro char From: Erik Naggum <erik@naggum.net> Date: 05 Dec 2000 01:31:36 +0000 Newsgroups: comp.lang.lisp Message-ID: <3184968696769937@naggum.net> * Richard Fateman <fateman@cs.berkeley.edu> | If you want to look at the XDOC specification, I can direct you to a copy. Not really. | This is true, and a nice solution for this particular application when | I can gather up all the pieces for #\Z and #\z. Thanks. You're welcome. | However, it does not allow me to separately set the dispatch character | separately for each character: it forces me to do this in pairs. If | I wanted to agregate characters I could write a single dispatch | function for all the characters of interest. I was looking into a solution to this. I found it hard to access the shared code of the closure, which I would have been able to compare with the newly created closure, and it seemed very wrong to try to call a function I did not know was a function that was prepared to accept different types or numbers of arguments. I could have relied on the arglist or the function-lambda-expression, but these are not reliable in a production system. I could register the functions in a hash table of some sort and compare with the stored value and believe I could call the function to find out. The latter _could_ work. The function would then be able to return the upper- or lowercase function it would call with an additional argument it would be known to accept, such as a keyword argument, like :retrieve, and char being :upper or :lower or the actual character. | And if I wanted to change the meaning of #\z without also knowing the | meanings of #\Z it would be worrisome. I could extract the old | meaning via get-dispatch-macro-character and embed it in the new one, | I suppose. You're welcome to extend the functionality to do that, but I found it too much work to finalize for a freebie. #:Erik -- "When you are having a bad day and it seems like everybody is trying to piss you off, remember that it takes 42 muscles to produce a frown, but only 4 muscles to work the trigger of a good sniper rifle." -- Unknown