Re: On side effects

Subject: Re: On side effects
From: "James Clark" <jjc@xxxxxxxxxx>
Date: Wed, 18 Jun 1997 14:11:38 +0700
> From: Paul Prescod <papresco@xxxxxxxxxxxxxxxxxxxxxxxxx>
> To: dssslist@xxxxxxxxxxxxxxxx
> Subject: Re: On side effects
> Date: Tuesday, June 17, 1997 11:35 PM

> So you can think of the final flow object tree as a set of flow objects
and
> associated *expressions* that specify characteristics.

Right.

> You could imagine that
> the expressions are all evaluted as a post-process step and then the flow

> object tree is returned.  While the DSSSL code itself is executing, it is

> (theoretically at least) isolated even from its parent context. That's
how
> I understand it anyhow.
> 
> I personally think that this level of firewalling is maybe a little
> extreme, 

But given that inheritance happens in the flow object tree how can it be
otherwise?  Consider

(let ((x (make sequence font-size: (+ (inherited-font-size) 2pt) (literal
"foo"))))
  (sosofo-append
     (make paragraph font-size: 10pt x)
     (make paragraph font-size: 12pt x)))

The make sequence expression gets evaluated once, but the expression
specifying the font-size characteristic has to get evaluated twice with a
different result in each case.

James





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


Current Thread