函数式编程是种编程方式,它将电脑运算视为函数的计算。 函数编程语言最重要的基础是λ演算(lambda calculus),而且λ演算的函数可以接受函数当作输入(参数)和输出(返回值)。 和指令式编程相比,函数式编程强调函数的计算比指令的执行重要。 和过程化编程相比,函数式编程里函数的计算可随时调用。
函数式编程是现在最流行的编程范式之一,它的特点是:
- 函数是一等公民,可以作为参数传递,也可以作为返回值返回
- 函数式编程语言通常是纯函数式语言,也就是说,函数式编程语言中的函数是没有副作用的,也就是说,函数的执行不会影响外部环境,也不会受到外部环境的影响。
函数式编程语言有很多,比如:Haskell、Scala、Clojure、Erlang 等。
The Little Schemer
豆瓣评分:9.2
《The Little Schemer:递归与函数式的奥妙》是一本久负盛名的经典之作,两位作者Daniel P. Friedman、Matthias Felleisen在程序语言界名声显赫。《The Little Schemer:递归与函数式的奥妙》介绍了Scheme的基本结构及其应用、Scheme的五法十诫、Continuation-Passing-Style、Partial Function、Y-Combinator、Interpreter等内容,并通过这些内容阐述了计算的一般本质。《The Little Schemer:递归与函数式的奥妙》没有什么理论性描述,所有概念都蕴含在独特的引导式一问一答过程中,这种方式让读者对程序大师运用熟稔的程序方法来驾驭概念的能力叹为观止。 通过阅读《The Little Schemer:递归与函数式的奥妙》,可以…(展开全部)
函数式编程思维
本书脱离特定的语言特性,关注各种OOP语言的共同实践做法,展示如何通过函数式语言解决问题。例如,如何利用函数式语言,通过高阶函数、多元方法等完成代码重用。知名软件架构师Neal Ford为我们展示不同的编程范式,帮我们完成从Java命令式编程人员,到使用Java、Clojure、Scala函数式编程人员的完美转变,建立对函数式语言的语法和语义的良好理解。
Java 8函数式编程
通过每一章的练习快速掌握Java 8中的Lambda表达式
分析流、高级集合和其他Java 8类库的改进
利用多核CPU提高数据并发的性能
将现有代码库和库代码Lambda化
学习Lambda表达式单元测试和调试的实践解决方案
用Lambda表达式实现面向对象编程的SOLID原则
编写能有效执行消息传送和非阻塞I/O的并发应用
JavaScript 函数式编程
JavaScript 是近年来非常受瞩目的一门编程语言,它既支持面向对象编程,也支持函数式编程。本书专门介绍JavaScript函数式编程的特性。
全书共9章,分别介绍了JavaScript函数式编程、一等函数与Applicative编程、变量的作用域和闭包、高阶函数、由函数构建函数、递归、纯度和不变性以及更改政策、基于流的编程、类编程。除此之外,附录中还介绍了更多函数式JavaScript。
本书内容全面,示例丰富,适合想要了解函数式编程的JavaScript程序员和学习JavaScript的函数式程序员阅读。
JavaScript ES6函数式编程入门经典
豆瓣评分:8.4
《JavaScript ES6函数式编程入门经典》使用JavaScript ES6带你学习函数式
编程。你将学习柯里化、偏函数、高阶函数以及Monad等概念。
目前,编程语言已经将焦点从对象转移到函数。JavaScript支持函数式编
程,并允许开发者编写精心设计的代码。
主要内容
● 掌握函数式编程的概念
● 清楚函数在JavaScript中的地位
● 理解真实的函数式类库,并创建一个模拟underscore.js的函数式类库
● 实践纯错误处理技术,例如函子和Monad
● 了解ES6的函数式编程特性,例如扩展运算符和Generator
Python函数式编程(第2版)
豆瓣评分:7.5
Python 具备函数式编程的许多核心特征,因此可以借鉴其他函数式语言的设计模式和编程技术,编写出简洁优雅的代码。本书首先介绍函数式编程的一般概念及特点,然后讲解迭代器、生成器表达式、内置函数、常用高阶函数、递归与归约、实用模块和装饰器的用法,以及避开Python 严格求值顺序的变通方法、Web 服务设计方法和一些优化技巧。
欢迎关注我的公众号“码农真经”,原创技术文章第一时间推送。