[D言語]ruby風each/map
import std.stdio;
class Array(T){
private:
T[] data;
public:
this(T[] data ...){
this.data = data.dup;
}
void each(void delegate(T) dg){
foreach(T value; data){
dg(value);
}
}
T[] map(T delegate(T) dg){
T[] result = new T[data.length];
foreach(int index, T v; data)
result[index] = dg(v);
return result;
}
}
void main(){
auto arr = new Array!(int)(1,2,3,4,5);
arr.each(delegate void (int v){ writefln(v); });
auto arr1 = arr.map(delegate int (int v){ return v * 3; });
writefln(arr1);
}