D16-06 函数式编程 07函数式编程尾递归调用优化

三种方法论:

1、面向过程:(过程:没回返回值的函数)找到解决问题的入口,按照一个固定的流程去模拟解决问题的流程。需要把大过程拆分成各个小步骤。

2、函数式编程:函数式=编程语言定义的函数+数学意义的函数

通俗来讲,函数式就是编程语言去实现数学函数,这种函数内对象是永恒不变的,要么参数是函数,要么返回值是函数,没有for和while循环,所有的循环都由递归去实现,无边的赋值(即不用变量去保存状态),无赋值即不改变。

把函数当做参数传个另外一个函数

def foo(n):
    print(n)
def bar(name):
    print('my name is %s'%name)
foo(bar('liu'))
输出结果
my name is liu
None

 foo需要调用bar,所以首先运行的是bar,bar需要对name传参并打印 my name is ** 由于foo并没有返回值return 所以直接打印none

3、面向对象:

--------

高阶函数:满足下列一个条件

1、函数接收的参数是一个函数名

2、返回值中包含函数

----------

尾递归优化

尾调用:在函数的最后一步调用另外一个函数(最后一行不一定是函数的最后一步

猜你喜欢

转载自www.cnblogs.com/liupingtao/p/9443159.html