配列を第一引数にする

すると、こんな具合に書けるらしい。

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っぽく。いい感じ。
誰かの日記で見たのでリンクはろうと思ったんですが、ページ閉じたので誰のところかわからない…
追記:こちらでした