码迷,mamicode.com
首页 > 其他好文 > 详细

函数式编程

时间:2018-04-20 20:43:02      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:cti   isp   pytho   要求   封装   部分   nal   基本   通过   

函数是Python内建支持的一种封装, 通过把大段代码拆成函数, 通过一层一层的函数调用, 就可以把唐娟的任务分解成简单的任务. 这种分解可以称之为面向过程的程序设计. 函数就是面向过程的程序设计的基本单元.

 

在计算机的层次上, CPU执行的是加减乘除的指令代码, 以及各种条件判断和跳转指令. 所以,汇编语言是最贴近计算机的语言.而主版则指数学意义上的计算,越是抽象的计算,离计算机硬件越远.

对应编程语言, 越低级的语言,越贴近计算机,抽象程度低,执行效率高, 比如c语言; 越高级的语言, 越贴近计算,抽象程度高,执行效率低,比如Lisp语言.

 

函数式编程 (Functional Programming), 虽然也可以归结到面向过程的程序设计,但其思想更接近数学计算.

  • 函数式编程是一种抽象程度很高的编程范式.
    • 纯粹的函数式编程语言编写的函数没有变量,因此,任意一个函数,只要输入是确定的, 输出就是确定的.这种纯函数没有副作用.
    • 允许使用变量的程序设计语言,由于函数内部的变量状态不确定, 同样的输入, 可能得到不同的输出,因此,这种函数是有副使用的.
  • 函数式编程的特点
    • 允许把函数本身作为参数传入另一个函数,还允许返回一个函数
  • 函数式编程语言: lisp, hashshell, erlang

 

Python对函数式编程提供部分支持. 由于Python允许使用变量, 因此 , Python不是纯函数式编程语言.

 

例:

1. 数学表达式

 (1+2)*3-4

 

2. 传统的过程式编程, 可能这样写:

  

1 var a = 1+2;
2 var b = a*3;
3 var c = b-4;

 

3. 函数式编程要求使用函数. 可以把运算过程定义到不同的函数, 然后写成下面这样:

 

var result = subtract(multiply(add(1,2)3),4)

 

函数式编程

标签:cti   isp   pytho   要求   封装   部分   nal   基本   通过   

原文地址:https://www.cnblogs.com/cheese320/p/8893159.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!