配列を第一引数にする
すると、こんな具合に書けるらしい。
import std.c.stdio; void main(){ int[10] a; for (int i = 1; i < 10; i++){ a[i] = i; } int t = a.total(); // ここ printf("%d\n", t); } int total(int[] array){ int t = 0; foreach (int x; array){ t += x; } return t; }
45
ふむふむ。
もうちょっと弄る。
template each(T){ T[] each(T[] ary, T delegate(T) dg){ T[] rary; rary.length = ary.length; for (int i = 0; i < ary.length; i++){ rary[i] = dg(ary[i]); } return rary; } }
Rubyっぽく。いい感じ。
誰かの日記で見たのでリンクはろうと思ったんですが、ページ閉じたので誰のところかわからない…
追記:こちらでした