初识函数式编程(Functional Programming,FP)
文章内容输出来源:拉勾教育 大前端高薪训练营
前言
函数式编程是种编程方式,它将电脑运算视为函数的计算。函数编程语言最重要的基础是λ演算(lambda calculus),而且λ演算的函数可以接受函数当作输入(参数)和输出(返回值)。
常见的编程范式
函数式编程、面向过程编程、面向对象编程、指令式编程等。
定义
函数式编程是一种编程范式(programming paradigm),也就是如何编写程序的方法论。
它属于"结构化编程"的一种,主要思想是把运算过程尽量写成一系列嵌套的函数调用。
- 和指令式编程相比,函数式编程强调函数的计算比指令的执行重要。
- 和过程化编程相比,函数式编程里函数的计算可随时调用。
纯函数的定义
* 相同输入必定能得出相同输出。
* 函数执行过程中没有任何副作用。
详情参见 函数式编程 – 纯函数、柯里化
面向对象编程
把现实世界中的事物抽象成程序世界中的类和对象,通过封装、继承和多态来演示事物事件的联系。
函数式编程
把现实世界的事物和事物之间的联系抽象到程序世界(对运算过程进行抽象)。
函数式与非函数式
let num1 = 2; let num2 = 3;let sum = num1 + num2;console.log(sum); // 函数式 function add (n1, n2) { return n1 + n2;}let sum = add(2, 3); console.log(sum);
总结
函数式编程是用来描述数据(函数)之间的映射,也可以说,函数式编程其实就是对运算过程的抽象。
参考
https://baike.baidu.com/item/%E5%87%BD%E6%95%B0%E5%BC%8F%E7%BC%96%E7%A8%8B/4035031#1
初识函数式编程(Functional Programming,FP)相关推荐
- 【编程语言】函数式编程 Functional Programming
函数式编程 1. 引言 "函数式编程"是一种"编程范式"(programming paradigm),也就是如何编写程序的方法论. 它属于"结构化编程 ...
- R语言函数式编程(Functional Programming)概念
R语言函数式编程概念 functional 泛函 R语言的函数是first-class function 一等函数,higher-order function高阶函数,函数可以作为函数参数传入,这些特 ...
- 面向函数范式编程(Functional programming)
函数编程(简称FP)不只代指Haskell Scala等之类的语言,还表示一种编程思维,软件思考方式,也称面向函数编程. 编程的本质是组合,组合的本质是范畴Category,而范畴是函数的组合. 首先 ...
- 什么是函数式编程?总结
什么是函数式编程? 函数式编程(Functional Programming, FP),FP 是编程范式之一,我们常听说的编程范式还有面向过程编程.面向对象编程. 面向对象编程的思维方式:把现实世界中 ...
- 大前端进击之路(一):函数式编程
转自:掘金 - 跟兔虫 函数式编程概念 一.什么是函数式编程 函数式编程(Functional Programming, FP),是一种编程风格,也可以认为是一种思维模式,和面向过程.面向对象是并列的 ...
- random函数用法_Python函数式编程:从入门到走火入魔
很多人都在谈论函数式编程(Functional Programming),只是很多人站在不同的角度看到的是完全不一样的风景.坚持实用主义的 Python 老司机们对待 FP 的态度应该更加包容,虽然他 ...
- java里函数式表达式_Java8函数式编程 (一) 数据流和lambda表达式
JDK 1.8中引入了函数式编程(functional programming,FP),如果您已习惯OOP,一定会感到困惑:什么是函数式编程?这样的编程模式有什么好处? 本文将通过简单的实例令读者对函 ...
- javascript 函数式编程(1)
函数式编程(Functional Programming) 简单说就是把函数当参数传递给其他函数.个人认为 FP 在软件抽象中占很重要的地位,作为程序员的话极力推荐掌握其中的思维方法.最早这思想出现在 ...
- python从入门到走火入魔_Python 函数式编程:从入门到走火入魔
很多人都在谈论函数式编程(Functional Programming),只是很多人站在不同的角度看到的是完全不一样的风景.坚持实用主义的 Python 老司机们对待 FP 的态度应该更加包容,虽然他 ...
最新文章
- nagios插件--磁盘IO监控
- JAVA类型转换问题
- 2018python培训-python培训哪里比较好?
- python怎么写文件-python头文件怎么写
- 题目1162:I Wanna Go Home
- linux如果一个目录具有执行,Linux操作系统部分复习题答案
- 阜阳市乡镇企业中专学校计算机教师高翱简介,2017年中南林业科技大学博士研究生奖助学金...
- 带你深入探究云原生时代的分布式操作系统 Kubernetes
- html a标签去掉下划线_如何用HTML基本元素制作表格
- 关于Android的学习
- 牛客小白月赛9: div.2 A(线性筛)
- RDP(远程桌面很慢) slow performance, Hyper-V,IPv4 Checksum offload
- 想要接触人工智能吗?先要学会如何阅读论文
- 互联网金融并不是传统银行的颠覆者
- 你确认退出吗 html,按退出会 执行2次弹出确认窗口,为何?
- 报价管理解决方案丨汇信
- 使用 Anaconda 安装 Pytorch
- 学计算机专业独立显卡有必要吗,独立显卡驱动有什么用(显卡驱动有必要安装吗)...
- 【HDU 杭电 5773 The All-purpose Zero】
- 后台获取用户登录信息