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

Re: XML as a transition to s-expr

   From: Tony Kimball <alk@pobox.com>
   Date: Tue, 18 Dec 2001 17:28:56 -0600
   Quoth Scott McKay on Tuesday, 18 December:
   : And as I already pointed out in another, this is ambiguous, since it does
   : not differentiate between element attributes and element bodies.
   Disagree.  It's quite clear what is an attribute, and
   what is content:  (defun tag1 (&key attr1 &rest body) ... )
   No ambiguity.

Hm.  What dialect of Lisp is that from?

In Common Lisp,
(a) &rest must precede &key, and
(b) the &rest gets the *same* arguments in its list that &key
    gets to process.  Thus
    (defun foo (a &rest x &key baz) (list a x baz))
    (foo 1 :baz 3) => (1 (:baz 3) 3)
(Yes, it's weird that the same argument can be processed by two
different binding widgets.  But CLTL2 talks about it explicitly
see page 78.)
   Yes, *someone* has to parse it.  But that is always true.
You'd need a rule that the body can't contain (or at least
begin with) a keyword.  That might be an okay rule, but it
needs to be stated.