[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--