naranja #3517(2007/10/25 09:10 GMT) [ D ] Rating0/0=0.00
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
import std.stdio; import std.stdarg; T[][] directProduct(T)(T[] arr0, T[] arr1,...){ T[][] args = [arr0, arr1]; for(int i; i < _arguments.length; i++){ args ~= va_arg!(T[])(_argptr); } T[][] f(T[][] arrArr, int i){ T[][] directProduct; foreach(arr; arrArr){ foreach(e; args[i]){ directProduct ~= arr ~ e; } } if(i == args.length - 1){ return directProduct; } else{ return f(directProduct, i + 1); } } return f(cast(T[][])[[]], 0); } void main(){ writefln(directProduct([1, 2], [3])); writefln(directProduct("^_@", "9876", "AB")); writefln(directProduct(["hoge", "fuga"], ["foo", "bar", "baz"])); }
Rating0/0=0.00-0+
[ reply ]
naranja
#3517()
[
D
]
Rating0/0=0.00
Rating0/0=0.00-0+
[ reply ]