python 函数模型(Functions as General Methods)

函数模型

参考:http://composingprograms.com/pages/16-higher-order-functions.html
下面是一个函数的模版,意思是我们要求黄金数,大概是1.6,但是我们先随便猜一个数,如果这个数不满足close的条件,就update这个数,直到满足close的条件

def improve(update, close, guess=1):
    while not close(guess):
        guess = update(guess)
    return guess

完整的代码如下

# -*- coding : utf-8 -*-

def improve(update, close, guess=1):
    while not close(guess):
        guess = update(guess)
    return guess

def golden_update(guess):
    return 1 / guess + 1

def square_close_to_successor(guess):
    return approx_eq(guess * guess, guess + 1)

def approx_eq(x, y, tolerance=1e-15):
    return abs(x - y) < tolerance

golden_number = improve(golden_update, square_close_to_successor)
print(golden_number)

输出:

1.6180339887498951
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容