[clean-list] strong root normal form

Jean-Luc Delatre jld@club-internet.fr
Thu, 10 Oct 2002 14:22:56 +0200


F.S.A.Zuurbier@inter.nl.net a écrit :
> 
> 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.

Well...
I am a bit puzzled by all these arguments, I thought seasoned users knew better.
I downloaded Clean some years ago, 
but I gave up using it for this very kind of reasons.
What's the point having a powerfull, terse, functional language, etc... etc...
if it is cryptic to the point that you don't really what you are doing
or should do?
Plus, that, being mostly interested in graph manipulation its a real pain
to fold many neat algorithms into contrived "functional" data structures.

No flames please, but I will take sensible arguments.

Cheers.

-- Jean-Luc Delatre
--------------------------------------------------------------------------
"Am I bitter? No, I taste just like chicken." 
--------------------------------------------------------------------------
 http://perso.club-internet.fr/jld/  -- GSM: +33 6 11 24 06 29