how to count number of letters with std.algorithm.count / std.algorithm.reduce / std.algorithm.map ?

bioinfornatics bioinfornatics at gmail.com
Sat Nov 17 18:15:24 PST 2012


thanks to all, then something as:
-----------------------------------
Tuple!(size_t[char],size_t) baseCounter( const ref string[] 
sequences ){
         alias Tuple!(size_t[char], size_t) Result;
         Result result;
         size_t         length       = 0;
         size_t[char][] baseNumbers  = new 
size_t[char][](sequences.length);
         foreach(index, ref seq; parallel(sequences)){
             foreach(ref letter; seq ){
                 if( letter in baseNumbers[index]) 
baseNumbers[index][letter]++;
                 else baseNumbers[index][letter] = 1;
             }
             length += seq.length;
         }
         foreach(baseNumber; baseNumbers){
             foreach( key, value; baseNumber ){
                 if( key in result[0] ) result[0][key] += value;
                 else result[0][key] = value;
             }
         }
         result[1] = length;
         return result;
     }
-----------------------------------

same code with highlight http://pastebin.com/pVEuWwgr
should be faster, no ?
This code is generic and should be able to count for any letter 
the frequencies


More information about the Digitalmars-d-learn mailing list