2
我決定嘗試通過麻省理工學院SICP課程,但使用Javascript。卡住SICP練習1.1.7使用Javascript
下面的代碼輸出不確定的,但它應該輸出的5
平方根我測試過的所有的小功能,他們都按預期工作的一個相當準確的猜測,這個問題必須在某處在遞歸guessRoot()函數中,但我似乎無法看到問題。
var square = function(x) {
return x * x;
};
var abs = function(x) {
return x > 0 ? x : -x;
};
var goodEnough = function(g, x) {
return abs(square(g) - x) < 0.01;
};
var average = function(x, y) {
return (x + y)/2;
};
var improve = function(g, x) {
return average(g, (x/g));
};
var guessRoot = function(guess, x) {
if (goodEnough(guess, x)) {
return guess;
} else {
guessRoot(improve(guess, x), x);
}
};
console.log(guessRoot(2.5, 5));
衛生署,我知道這將是愚蠢的東西。謝謝你,馬特。 – 2013-03-07 05:53:40