From: Nicolas C. <war...@fr...> - 2003-06-09 04:45:54
|
> Here's an updated version of my patch to enum.ml, including using fast > in Enum.concat. A try block on every call to next() was quite > expensive. I wasn't able to think of anything useful to do with > t.count (as opposed to tn.count) in concat, though. > > If it's more convenient, I've also posted my modified enum.ml at: > > http://recalcitrant.org/~apost/enum.ml Thanks Alan. I'll try to review theses patch when I have some time. I think it's good idea to remove the try..catch blocks when we have a "fast" count in concat and append, because they occur in each call to next . But for fold / iter , I'm not sure, mainly because a fast count can still be O(N) and cost more than having one try...catch block setuped. Could you do some benchs using ExtList.enum instead of Enum.init ? The "fast" count is O(N) here in this case ( but is computed only once ). With big lists ( "when we need speed" ) I'm pretty sure it will be better not to call count. Nicolas Cannasse |