`

PLT scheme编译错误

    博客分类:
  • FP
阅读更多
     今天照着sicp书上的例子运行代码,报出了一个错误:
define-values: cannot change constant identifier: sqrt
我在想书上的代码一般不会有错(国外的书,国内的就不敢说了),然后在细细分析了错误,我想可能sqrt这个标示可能已经被作为PLT scheme的某个函数了,所以我改了sqrt的名字,并且尝试写了个简单的过程来测试;
(define (M x)(sqrt 100)) 然后运行 (M 36)得到的是10 (当然是10了我写死了的是100)好了,原来这个标示已经被作为关键函数来实现了。恩以后看到这个错误也就知道是怎么一回事了。(哎,自己也傻了,这个sqrt函数应该算是基础函数了,当然应该已经在语言中实现了)
     顺便说下 sqrt的实现,我对10求平方根 windwos自带的计算器是    3.1622776601683793319988935444327
然后用scheme自带的sqrt计算结果为
3.1622776601683795
然后在用sicp中的sqrt例子,精度为0.001来算结果为
3.162277665175675
我调整精度为0.000000001结果为
3.162277660168379

哎 高数还是很有意思的,哈哈,可惜了
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics