[erlang-questions] foldl vs foldr and ++

Tim Watson <>
Thu Jan 16 11:22:25 CET 2014


I compiled the module with erlc and ran it via 'escript lr.beam' - doesn't that have the same effect?

On 15 Jan 2014, at 23:51, Kelly Wong <> wrote:

> Did you make sure to run it with -mode(compile). ?  If you don't the script will be interpreted, and could throw off performance tests.
> 
> Kelly Wong
> 
> 
> On Tue, Jan 14, 2014 at 3:41 AM, Tim Watson <> wrote:
> I tweaked your module to run via escript (just adding a simple main/1 and printing out the results of timer:tc), and I see a bit gap between foldl and foldr, whilst the hand coded version based on lists:reverse/1 is plenty fast enough:
> 
> :test $ escript lr.beam 10000000
> foldl: 679.103ms
> foldr: 43609.149ms
> reverse: 909.946ms
> :test $ evm info
> R16B03 compiled for x86_64-apple-darwin11.4.2, 64bit 
> 
> On Friday, 11 May 2012 10:27:29 UTC+1, Ulf Wiger wrote:
> 
> On 11 May 2012, at 04:02, Richard O'Keefe wrote: 
> 
> > This can be written more efficiently, but it's best of all 
> > just not to reverse the string in the first place.  Keep 
> > the code at a level where you can see what's going on well 
> > enough to spot the really _big_ efficiency gains. 
> 
> And this is of course the really important difference between 
> foldr() and foldl(): 
> 
> - in which order do you want to process the list? 
> - if you build a list in the accumulator, in which order do you want it? 
> 
> For most practical purposes, one should assume that they 
> both both do their job efficiently. 
> 
> BR, 
> Ulf 
> 
> Ulf Wiger, Co-founder & Developer Advocate, Feuerlabs Inc. 
> http://feuerlabs.com 
> 
> 
> 
> _______________________________________________ 
> erlang-questions mailing list 
>  
> http://erlang.org/mailman/listinfo/erlang-questions 
> 
> _______________________________________________
> erlang-questions mailing list
> 
> http://erlang.org/mailman/listinfo/erlang-questions
> 
> 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://erlang.org/pipermail/erlang-questions/attachments/20140116/c7168a63/attachment.html>


More information about the erlang-questions mailing list