optimization of list comprehensions
Thu Mar 9 22:39:32 CET 2006
You will probably find an even grater usage if you start searching more
seriously. I, for one, usually do an import on 'lists' so I don't have
to write the lists: prefix all the time.
Mats Cronqvist skrev:
> Richard A. O'Keefe wrote:
> > If you have evidence to back this up, it's publishable.
> > Please publish it. Some sort of survey analysing what kind of
> > programmers use what kind of language features would be most
> Ulf Wiger (AL/EAB) wrote:
>> I think it's safe to say that even "average" industrial programmers
>> rather quickly learn to exploit the virtues
>> of higher-order functions and iterators.
> not to be outdone by wiger (and since o'keefe said please), i ran a
> few greps on 1,748,162 lines of erlang sources (comments included). i
> estimate that some 3-400 people have contributed to the code sample.
> i counted how many times each of the patterns below appeared per module.
> "[ (]fun[ (]" "lists:fold" "lists:map" "lists:foreach"
> never 64% 89% 84% 85%
> <3 times 81% 97% 94% 94%
> 36% of the modules defined at least one fun. however, 15% of all
> modules had at least one call to mnesia:transaction. so i feel pretty
> confident stating that ~80% of all modules have no (non-mnesia related)
> another observation is that although there were ~2 fun definition per
> module, 4% of the modules accounts for 50% of the fun definitions.
> one possible interpretation is that most of this code was produced by
> programmers that rarely use funs if they don't have to. obviously, the
> methodology is much too weak to *prove* this. i'm not sure it can be
> proven, since there's no way to establish who wrote what. most modules
> have been touched by at least a handful of people, and everyone has
> worked on more than one module.
> note also that most of this code sample has been used for years in a
> very challenging environment, and is part of one of the most stable
> products in its market.
> i does seem safe to say that one can write well working Erlang code
> while rarely, if ever, using funs (excluding mnesia use, as always).
More information about the erlang-questions