From ... From: Erik Naggum Subject: Re: predicates and generalized booleans Date: 1997/04/09 Message-ID: <3069618707327233@naggum.no>#1/1 X-Deja-AN: 231997826 References: <3069528322024035@naggum.no> mail-copies-to: never Organization: Naggum Software; +47 2295 0313; http://www.naggum.no Newsgroups: comp.lang.lisp * Kent Pitman | You've chided me too much on SGML style issues for the HyperSpec for me | to let a comment like this pass without comment. ;-): You should do "in | practice" what will keep your programs from breaking if you meat a new | implementation. (I deserved this.) | Heh. You had to ask... and I'm truly happy I did, too. thank you for a very informative answer. | And, personally, I think relying on the identity of a truth value | function as being the arbitrarily chosen object T is stylistically poor. that was the weak hunch that prompted the question. I've cleaned it up, and now it's a separate function with a slight change to the semantics (a substring entirely without contents (i.e., empty or whitespace only) causes the returned value to be t; a complete object if that object is readable; otherwise, a cons of an error condition and the appropriate literal: (flet ((parse-argument (start end) (handler-case (read-from-string buffer nil t :start start :end end) (stream-error (eof) (cons eof (make-array (- end start) :element-type (array-element-type buffer) :displaced-to buffer :displaced-index-offset start))))))) weird thing is, I think this has elegance, too. #\Erik -- I'm no longer young enough to know everything.