[Haskell-cafe] Comments and suggestions on code
Jonathan Cast
jonathanccast at fastmail.fm
Fri Jan 11 22:12:16 EST 2008
On 11 Jan 2008, at 7:27 AM, Andre Nathan wrote:
> On Thu, 2008-01-10 at 20:37 -0800, Jonathan Cast wrote:
>> It might be faster; laziness usually has higher constants than direct
>> implementations. But I doubt the difference is critical in this
>> case, and I would definitely time a re-writing and throw it away
>> unless it was significantly faster. But I don't think this is a case
>> where laziness actually alters either the time or the space
>> asymptotics of the algorithm (you end up creating an ~ O(n) tree
>> anyway, so I'd figure O(n) space was OK for the loop, too).
>
> I was wondering if laziness would make it run as if it was a single
> O(n)
> operation (get one directory entry "on demand", pass it to filter and
> then to insertInTree),
That should be the evaluation order, yes. I think big-O notation is
the wrong notation for this; you get a single loop with three
sequenced operations, rather than three sequenced loops, but both are
O(n).
> because only one entry is used at a time, so that
> only the "current" entry needs to be evaluated.
>
> I still find it hard to evaluate the effects of laziness on the
> complexity of programs...
jcc
More information about the Haskell-Cafe
mailing list