因为无意中看见有人推荐的伯克利的这本教材,使用python教SICP,感觉使用起来更得心应手,毕竟scheme的括号太多用起来不习惯…虽然python不能支持所有的FP特性,但是作为一个初学者,让自己学起来有兴趣才是最重要的,以后全部都用Python来做啦!
(1) 首先用python实现一个抽象的Product,并用来定义一个计算
PI4=23434565....
这个PI的逼近式。代码如下:
主要就是注意要把(k+1/K)这个式子凑出来!
def product(n,term,next,initial):
total,k = initial,0
while k<=n:
total,k = total*term(k),next(k)
return total
def pi_next(k):
return k+2
def pi_term(k):
return ((k+4)/(k+3))**2
def pi_product(n=10**6):
return product(n,pi_term,pi_next,8/(n+4))
print(pi_product())
(2)使用牛顿迭代法来进行关于函数f(x)=0的根.