On 12/26/2011 12:30 AM, bearophile wrote:
Timon Gehr:

http://pastebin.com/C6vf9DQQ

If possible I suggest to remove all the BigInt from the module, and put the 
bigint import into the main():

void main() {
     import std.bigint;
     auto h = hamming!BigInt();
     writeln(take(20, h));
     writeln(h()[1_691]);
     writeln(h()[1_000_000]);
}


That could be done, but I don't think it is terribly important.


@nonstrict:

r=cast(T)1
      .cons(
                   r.map((a)=>  2*a)
            .merge(r.map((a)=>  3*a))
            .merge(r.map((a)=>  5*a))
      );

This version looks acceptable :-)

Bye,
bearophile

It would be even better with methods-as-operators:

r=cast(T)1 cons (( r map a=>2*a ) merge ( r map a=>3*a ) merge ( r map a=>5*a ))












Reply via email to