[clean-list] strong root normal form

F.S.A.Zuurbier@inter.nl.net F.S.A.Zuurbier@inter.nl.net
Thu, 10 Oct 2002 09:32:58 UT


This is a multi-part message in MIME format.

--_----------=_1034242378269316
Content-Disposition: inline
Content-Length: 1086
Content-Transfer-Encoding: binary
Content-Type: text/plain

Jerzy wrote:
> 
> 
> > When I change a let to a strict let, I think I am saying to Clean:
> > DO it! Actually reduce this! Really! Go on, don't hesitate!
> >
> > But then there are still cases where the beast does not seem to do
> anything.
> > I guess because the result was not needed in the function's output.
> But
> > then, what was the strict let for, as opposed to the 'lazy' let?
> 
> I had such a behaviour as well, but it was discovered only trying to
> trace
> the execution (by hand). I deduced that if the answer is never used,
> then
> strictness or not strictness, the generation/reduction becomes a dead
> code
> anyway, so I cannot protest that it has been optimized away. Is there
> something wrong with this reasoning?

I am not in a position (yet) to say what is wrong or right. I am just trying to find out what the exact meaning of # and #! is. My earlier theory was that #! allowed me to force evaluation, no matter what. It looks like optimizing dead code over-rules that. Fair enough. I shall extend my theory.

Thanks,
Erik Zuurbier



--_----------=_1034242378269316--