美文网首页
函数式编程

函数式编程

作者: Farewell_lpf | 来源:发表于2019-06-11 14:12 被阅读0次
高阶函数

函数本身可以赋值给变量,即:变量可以指向函数。
1.map/reduce
map()接收二个参数,一个是函数,一个是Iterable(可序列对象)。返回新的Iterator(迭代器)
比如一个函数f(x)=x^2 ,要把这个函数作用在一个list[1,2,3,4,5]上,实现如下:

def f(x):
    return x*x
>>> r=map(f,[1,2,3,4,5])
>>>list(r)
[1,4,9,16,25]

reduce()把结果和序列的下一个元素做累计计算

from functools import reduce
def add(x,y):
    return x+y
>>>reduce(add,[1,3,5,7,9])
25

def fn(x,y):
    return x*10 +y
>>>reduce(fn,[1,3,5,7,9])
13579
返回函数
匿名函数

匿名函数:lambda x : x*x

装饰器

decorator就是一个返回函数的高级函数
定义一个打印日志的decorator

def log(func):
    @functools.wraps(func)
    def wrapper(*args,**kw):
      print("------")
      return func(*args,**kw)
    return wrapper

decorator接受一个函数作为参数,并返回一个函数

@log
def now():
    print("201-03-15")

定义一个带参的装饰器

def log(text):
    def decorator(func):
        @functools.wraps(func)
        def wrapper(*args,**kw):
            print(text)
            return func(*args,**kw)
        return wrapper
    return decorator
@log
def now("execute"):
    print("201-03-15")
偏函数

转换大量二进制字符串,定义个int2()的函数,默认吧base=2传进去

def int2(x, base=2):
    return int(x, base)
int2('1000000')

function.partial就是帮助我们创建一个偏函数

 import functools
 int2 = functools.partial(int, base=2)
  int2('1000000')

简单总结functools.partial的作用就是,把一个函数的某些参数给固定住(也就是设置默认值),返回一个新的函数,调用这个新函数会更简单。

相关文章

  • RxSwift初探(1)

    一、前提:函数响应式编程思想 简单来说 函数响应式编程 = 函数式编程 + 响应式编程 (1)函数式 函数式编程是...

  • iOS 函数编程 & 链式编程

    函数式(链式)编程 函数式编程概念 函数式编程是种编程范式 函数式编程 Functional Programmin...

  • 函数式编程(一)—— 前置知识

    为什么要学函数式编程? 什么是函数式编程?函数式编程和面向对象编程的不同对于函数式编程思维方式的理解: 函数式编程...

  • 二十二、函数式编程、面向协议式编程

    函数式编程(Functional Prigramming) 函数式编程 函数式编程(Functional Prig...

  • Python中的函数式编程

    函数式编程 说到函数式编程,我们的重点在于为什么要采用函数式编程,而不是什么是函数式编程。 函数式编程的优点:一、...

  • RxSwift-初探

    函数响应式编程 一:函数式 函数式编程简称FP(Functional Programming),函数式编程就是一种...

  • 《Kotlin入门实战》CH5 | 函数与函数式编程

    函数与函数式编程 函数式编程与命令式编程最大的不同是:函数式编程的焦点在于数据的映射,命令式编程(imperati...

  • 函数响应式编程思想 & RxSwift 核心逻辑(一)

    函数响应式编程思想 函数响应式编程思想即是将函数式编程和响应式编程相结合。 函数式编程 顾名思义,就是像函数一样的...

  • RxJava系列|RxJava简介(一)

    函数响应式编程 函数式编程是一种编程范式。 常见的编程范式有:命令式编程、函数式编程和逻辑式编程。 面向对象就是一...

  • 了解C# 函数式编程

    什么是函数式编程 函数式编程是一种编程范式,维基百科对函数式编程定义如下: 函数式编程(英语:functional...

网友评论

      本文标题:函数式编程

      本文链接:https://www.haomeiwen.com/subject/qxurtctx.html