Formal spec; implementation; nesting
Alpert Herb Petrofsky
(11 Jan 2005 21:03 UTC)
|
Re: Formal spec; implementation; nesting
Bradd W. Szonye
(11 Jan 2005 21:19 UTC)
|
Re: Formal spec; implementation; nesting Paul Schlie (11 Jan 2005 22:29 UTC)
|
Re: Formal spec; implementation; nesting
Taylor Campbell
(12 Jan 2005 00:10 UTC)
|
Re: Formal spec; implementation; nesting
Bradd W. Szonye
(12 Jan 2005 00:13 UTC)
|
Re: Formal spec; implementation; nesting
Bradd W. Szonye
(12 Jan 2005 00:16 UTC)
|
Re: Formal spec; implementation; nesting
Paul Schlie
(17 Jan 2005 03:03 UTC)
|
Re: Formal spec; implementation; nesting
Alpine Petrofsky
(12 Jan 2005 00:22 UTC)
|
Re: Formal spec; implementation; nesting
Paul Schlie
(12 Jan 2005 01:45 UTC)
|
Re: Formal spec; implementation; nesting
Paul Schlie
(12 Jan 2005 02:18 UTC)
|
Re: Formal spec; implementation; nesting
Paul Schlie
(12 Jan 2005 14:11 UTC)
|
Re: Formal spec; implementation; nesting
Paul Schlie
(12 Jan 2005 14:29 UTC)
|
(sorry for my delayed response) > From: Alpert Herb Petrofsky <xxxxxx@petrofsky.org> >> Date: Mon, 10 Jan 2005 17:14:56 -0500 >> From: Paul Schlie <xxxxxx@comcast.net> >> >> So in summary, it would seem that all reader actions invoked by a reader >> transform token should apply to the following correspondingly processed >> <s-exp>, implying: (showing only reader actions) >> >> (' ' <s-exp>) :: ({quote {quote <s-exp>}}) => ((quote (quote <s-exp>))) >> >> (#; #; <s-exp>) :: ({remove {remove <s-exp>}}) => () >> >> (#; ' <s-exp>) :: ({remove {quote <s-exp>}}) => () >> >> (' #; <s-exp>) :: ({quote {remove <s-exp>}}) => (') ; error, unbound 'quote > > Would you agree that these should be equivalent?: > > (' #; a b) > (' b) - no, just as I wouldn't expect (as it would be wrong): (' ' a b) :: ({quote '} a b) => (' b c) :: ({quote b} c) => ((quote b) c) As clearly to be consistent with the present scope of the 'quote semantic action applied by the reader, a reader semantic action must be applied to its following correspondingly processed <s-exp> (right recursive), not prior to it, yielding: (' ' a b) :: ({quote {quote a}} b) => ((quote (quote a)) b) Therefore by analogy: [presuming (') => <nothing>, as opposed to an error] (' #; a b) :: ({quote {remove a}}) => (b) > How about these?: > > (#; #; a b) > (#; b) - as above. > I think what you're missing in your comparison of ' and #; is this: > > ' consumes one sexp and produces one sexp. The resulting sexp can > then be used as the argument of another '. In contrast, #; consumes > one sexp and produces zero sexps. The resulting nothingness cannot be > used as the argument to another #; because nothing is not a sexp. - I simply argue that the scope of the action is determined prior to the semantic action, not following it; therefore the outer remove ends up being applied to the <s-exp> which has already been removed by it's preceding reader semantic action, (just as expression arguments are first evaluated prior to the expression/function itself; but after the expressions scope and arguments were previously determined.) Do you really see value in advocating: (#; #; a #; b c d #; e f) :: ({rem a} {rem b} {rem c} d {rem e} f) Being more useful than error prone (or simply nasty)? To me unfortunately, it would seem to be a big mistake.