gpt4 book ai didi

javascript - 在 Javascript 中卡住了 SICP 练习 1.1.7

转载 作者:行者123 更新时间:2023-11-29 17:18:04 27 4
gpt4 key购买 nike

我决定尝试完成 MIT SICP 类(class),但使用 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));

最佳答案

看起来您只是在递归步骤中缺少一个return

var guessRoot = function(guess, x) {
if (goodEnough(guess, x)) {
return guess;
} else {
return guessRoot(improve(guess, x), x); // ... here
}
};

http://jsfiddle.net/mattball/TyLsL

关于javascript - 在 Javascript 中卡住了 SICP 练习 1.1.7,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15263825/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com