Convert little imperative code to functional coding style
bioinfornatics
bioinfornatics at fedoraproject.org
Thu Aug 9 09:49:56 PDT 2012
Dear,
i try convert a code to functional coding style:
commented code is what i try to convert to functional
_______________________________________
import std.stdio;
import std.range;
import std.algorithm;
import std.conv : to;
import std.typecons : tuple;
import std.math : sqrt, floor;
import std.array : empty, array;
void main( ){
immutable size_t limit = cast(size_t )
floor( sqrt( cast(double)1_000 ) );
//~ foreach( m; iota( 2, limit ) ){
//~ foreach( n; iota( 1, m-1) ){
//~ if( 2 * m * (m+n) == 1_000 ) writeln((m ^^ 2 - n ^^ 2) *
(2 * m * n) * (m ^^ 2 + n ^^ 2));
//~ }
//~ }
auto r = iota(2, limit )
.map!( m => tuple( m, iota( 1, m - 1)
.filter!( n => 2 * m * (m+n) == 1_000 )
)
).filter!( n => !n[1].empty );
auto m = r.array[0][0];
auto n = r.array[0][1];
writeln( typeid( n ) );
writeln( n );
//~ writeln( (m ^^ 2 - n ^^ 2) * (2 * m * n) * (m ^^ 2 + n ^^ 2));
}
_______________________________________
I want to compute (m ^^ 2 - n ^^ 2) * (2 * m * n) * (m ^^ 2 + n ^^ 2)
when n => 2 * m * (m+n) == 1_000
I do this in 2 step maybe that is possible in one.
I search to convert m and n to size_t type
thanks for your help
More information about the Digitalmars-d-learn
mailing list