首页 > 其他 > 详细

函数式编程

时间:2019-02-16 22:22:30      阅读:180      评论:0      收藏:0      [点我收藏+]

编程方法论

面向过程:按照一个固定的流程去模拟解决问题的流程

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

    y = 2*x + 1 函数用编程语言实现

    def fun(x):

      return 2*x + 1

面向对象

函数式编程

1. 不可变:不用变量保存状态,不可修改变量
# 函数式编程
# 1. 不可变:不用变量保存状态,不可修改变量

# 非函数式
a = 1
def test1():
    global a
    a += 1
    return a

# 函数式
n = 1
def test2():
    return n + 1

 

2.函数即“变量”

  a.函数可以当参数传递

  b.返回值可以式函数名

def foo(n):
    print(n)

def bar(name):
    print(my name is %s % name)
    
foo(bar)
foo(bar(zhangsan))

输出:

<function bar at 0x0000024E4B385C80>
my name is zhangsan
None

 

3.高阶函数 :1.函数接受的参数是一个函数名 2.返回值是函数名,两个条件满足一个就是高阶函数

# 把函数当中参数传给另外一个函数

def foo(n):
    print(n)


def bar(name):
    print(my name is %s % name)


foo(bar)
foo(bar(zhangsan))

# 返回值中包含函数


def test3():
    print(from test3)


def handle():
    print(from handle)
    return test3()


handle()

 

4.尾调用

  在函数的最后一步调用另外一个函数(最后一行不一定是最后一步),调用函数的栈状态不需要保存,可以用来优化递归函数,俗称:尾递归

 

函数式编程

原文:https://www.cnblogs.com/xiangtingshen/p/10389498.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!