On Wed, 1 Jan 2003, Andrew J Bromage wrote: > G'day all. > > On Mon, Dec 30, 2002 at 01:47:37PM -0600, Artie Gold wrote: > > > One suggestion, though is that you're working too hard; there's really > > no reason to define a locally defined function. The much simpler: > > > > long [] = 0 > > long (x:xs) = 1 + long xs > > > > will do quite nicely. > > It has quite different performance characteristics, though. In > particular, this uses O(n) stack space whereas the accumulator one > uses O(1) stack space. >
This is assuming Haskell is properly tail-recursive. However, as far as I was told due to the lazy evaluation that is not the case for such functions. Regards, Shlomi Fish > Cheers, > Andrew Bromage > _______________________________________________ > Haskell mailing list > [EMAIL PROTECTED] > http://www.haskell.org/mailman/listinfo/haskell > ---------------------------------------------------------------------- Shlomi Fish [EMAIL PROTECTED] Home Page: http://t2.technion.ac.il/~shlomif/ He who re-invents the wheel, understands much better how a wheel works. _______________________________________________ Haskell mailing list [EMAIL PROTECTED] http://www.haskell.org/mailman/listinfo/haskell