爲什麼會在C#語言的設計者沒有包括這樣的事情(從Structure and Interpretation of Computer Programs移植,第二版,第30頁。)支持:爲什麼C#沒有詞彙嵌套函數?
/// <summary>Return the square root of x.</summary>
double sqrt(double x) {
bool goodEnough(double guess) {
return Math.Abs(square(guess) - x) < 0.001;
}
double improve(double guess) {
return average(guess, x/guess);
}
double sqrtIter(double guess) {
return goodEnough(guess) ? guess : sqrtIter(improve(guess));
}
sqrtIter(1.0);
}
+1。除了正確的尾遞歸部分。 :) – 2009-02-23 02:50:39