Re: On side effects

Subject: Re: On side effects
From: "James Clark" <jjc@xxxxxxxxxx>
Date: Thu, 19 Jun 1997 11:10:41 +0700
> My big concern about modes (first class or otherwise) is that they don't
> seem to nest the way I would expect them to:
> 
> (element foo (...) ) 
> 
> (mode bar
>     (element foo (...))
>     (element qutz (with-mode baz (process-matching-children "baz"))))
> 
> (mode baz
>     (element baz (process-matching-children "foo")) 
> 
> If I call (with-mode bar) which calls (with-mode baz) I want the
> definition for "foo" from "bar". I want construction-rules to overwrite
> each other in the "environment" according to nesting.

First class modes can help with this:

(mode baz
   (element foo (...))
   (element qutz
      (call-with-mode
           (merge-mode (with-mode baz (current-mode)) (current-mode))
           (lambda ()
               (process-matching-children "baz")))))

James




 DSSSList info and archive:  http://www.mulberrytech.com/dsssl/dssslist


Current Thread