版本信息:版本4.9.0.1(稳定性/4.9.0)(版本8b3189b)macosx-unix-clang-x86-64
该代码实际上是针对SICP中的练习1.3.1的:
(define (product term a next b)
(define (iter a result)
(if (> a b)
result
(iter (next a) (* (term a) result))
)
)
(iter a 1)
)
(define (get-pi n)
(define (next x) (+ x 2))
(define (term x) (* x x))
(* 8 n (/ (product term 4 next n) (product term 3 next (+ n 1))))
)
输出:
#;102> (get-pi 165)
3.13208714360219
#;103> (get-pi 167)
3.13220081034665
#;104> (get-pi 169)
3.13231179078142
#;105> (get-pi 170)
0.0
为什么结果变为0.0?
谢谢!
默认情况下,Chicken不实现完整的数字塔。您需要(use numbers)
。
我没有安装Chicken,但是您可能不得不使用它(exact->inexact (get-pi 170))
来获得与以前相同的结果。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句