Browse

Wacek Kusnierczyk Waclaw.Marcin.Kusnierczyk at idi.ntnu.no
Wed Sep 12 11:21:20 CEST 2007


Hi,

I observe unexpected behaviour when running a simple piece of code.
Consider this programlet:

declare
V = 'stop'
proc {P} {Browse V} end
local V='start' in {Browse V} {P} end
{P}

This displays start, stop, stop, in this order, as expected.
The funnyart is when the code is modified as follows:


declare
V = 'stop'
proc {P} {Browse V} end
local V='start' in {Browse V} {P} end
declare
V = 'whatever else'
{P}

Here, on the first run stop, start, stop is displayed, but on any 
subsequent run the order is again as above, as expected.  On the first 
run, the last Browse is the first to actually display -- why?  (To see 
that, redefine P to, e.g., proc {P Q} {Browse P#Q} end and call P with 
different values on each occasion.)

(Mozart 1.3.2, Fedora)

vQ



More information about the mozart-users mailing list