こんどのC#はすごいな(その2)
Haskellなどの関数型言語が少しブームになっていますが、次期C#にも関数型の思想が入ってくる。
それを応用すると遅延評価(lazy evaluation)などを自然*1に含めることができるらしい。
// Now, the parameters are functions that // can be used for calculating values int func(Func<int> first, Func<int> second) { if ((first()%2) == 0) return 0; else return second(); } // Parameters are passed using lambda expressions func(() => n, () => expensiveCalculation());