Not to beat a dead horse, but I wasn't suggesting to rename the fix function that everyone knows and loves:

fix :: (a -> a) -> a
fix f = let f' = f f' in f'

I was merely trying to suggest that it would be wise to rename the function in http://haskell.org/haskellwiki/Reference_card that redefined fix to mean:

 fix :: Eq x => (x -> x) -> x -> x
 fix f x = if x == x' then x else fix f x'
     where x' = f x

It is this latter function which I suggested to be renamed limit, since it returns the limit (converged value) of f^n x, where n -> inf, and doesn't even have the same type or arity as the standard fix function.

Somehow this (admittedly minor) point got lost in the heat of battle.

Dan Weston

Jonathan Cast wrote:
On Wed, 2007-09-26 at 17:09 -0500, Derek Elkins wrote:
On Wed, 2007-09-26 at 14:12 -0700, Jonathan Cast wrote:
On Wed, 2007-09-26 at 11:43 -0700, Dan Weston wrote:
It seems no one liked idea #2. I still think fix is the wrong name for this, maybe limit would be better.
It calculates least fixed points.  `fix' is as good a name as any.

`limit' is terrible; the argument to fix, a -> a, is neither a sequence
nor diagram nor net type, and hence its values don't have limits...

jcc

PS Yes, I know fix a = sup_{i=0}^inf f^i(bot).  That sequence is rather
different than the input function...
Actually, f :: a -> a -is- a diagram and its limit -is- fix f.

In what way?  I'm not disputing you, but I don't see how to interpret it
as such.

  That
said, limit is still a horrible name for it.  fix isn't much better, and
Y is even worse.  I'm not sure what an immediately intuitive name would
be, so might as well go with the historical one.

recursive (at least for my usage).

jcc


_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe




_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to