SegmentFault 手艺周刊 Vol.16 - 浅入浅出 JavaScript 函数式编程

《SegmentFault 手艺周刊 Vol.16 - 浅入浅出 JavaScript 函数式编程》

函数式编程(Functional Programming),一看这个词,几乎就是学院派的模范。

以至于从 Lisp 的创世,到 Scheme、Haskell、Clean、Erlang、Miranda、Scala、LOGO、Clojure、Mathematica 以至 R,它们一出生就站在了蔑视链的顶端,迥殊黑白纯函数式的 Lisp 老祖和纯函数式的集大成者 Haskell。就如段子里说的,一群顺序员毛遂自荐,当听到“我是写 Lisp 的…”这一句,所有人的注意力都会被吸收。几乎是浩瀚顺序员想要装逼的巅峰,可见一斑。

学院派的言语要领好像只要大学研讨里才会运用,但跟着手艺和时期的生长,JavaScript,这类典范的多范式编程言语,也由面向对象为相对主导逐渐归入种种函数式编程的特征,这两年的 React、TypeScript、Immutable、underscore、Elm 等等,纷纭到场了函数式编程的大潮。所以这期周刊,我们就重点引入 JavaScript 的函数式编程,浅入浅出,一窥函数式编程的头脑,可以让你对编程言语的明白越发举一反三一些。

浅入

1. 什么是函数式编程?

JavaScript 函数式编程(一)JavaScript 函数式编程(二) // 王伟嘉

这两篇将 JS 函数式编程的典范特征“1. 纯函数观点,函数柯里化和函数的组合;2. 容器和 Functor,Maybe,Monad,Either 以及 IO”由浅及深,一个个地做了引见,异常不错的入门文章。

「所谓的纯函数就是,关于雷同的输入,永久会获得雷同的输出,而且没有任何可视察的副作用,也不依赖外部环境的状况。」

2. 函数式头脑的明白

《JavaScript 函数式编程》读书笔记 // homker

这是作者对《JavaScript 函数式编程》的明白,JS 为何要用函数式编程(数据和行动的关联、专注于历程自身),怎样运用函数式编程(一等国民、纯函数、可组合、高阶函数、基于流的编程),可以让你更深切地明白 JS 大批引入函数式要领的头脑。

译丨JavaScript 与函数式编程 // 文蔺

如今,来举行更细节的剖析和明白
展示另一面的函数式编程头脑:强调将顺序状况变化(即副作用 side effect)的次数减到最小,勉励运用不可变数据(immutable data)和纯函数(pure functions)(“纯”意味着没有副作用的),更倾向于运用声明式的作风(让代码更清洁,可读性更强,推理起来更简朴)。

3. 特征各个相识

鄙人函数式编程有何贵干 // 力谱宿云

示例代码清楚,简朴明了,让你疾速相识 FP 的诸多特征,接下来,再一一剖析。

前面提到的纯函数、函数柯里化、函数的组合、偏函数、容器、Functor、Monad、IO 等等,这里都有离别的细致解说。

浅出

4. 各 JS 方言都有了哪些实践?

译丨函数式 TypeScript // 文蔺

「谈到函数式编程时,可以常被提到的是机制、要领,而不是中心准绳。但从根本上来说,函数式编程就是关于如运用通用的可复用函数举行组合编程。」——作者在重构 TypeScript 代码时运用函数式的一些思索

React.js 的代码中包含了大批函数式头脑,比方 Immutable,比方 Redux 的柯里化函数以及代码组合,无妨来看看。

假如你盘算最先函数式编程,艰涩的 Monad/Functor 们可以也须要着手写点东西来熟习,而跟着全部 React 社区往函数式方向生长,Elm 作为前端函数式编程的前驱和风向标,毫无疑问是值得去进修和自创的。这两个系列,一步步地带你相识怎样运用 Elm 构建运用。

5. 函数式的头脑在其他言语中的表现

函数式编程在现实临盆中发挥着庞大的作用,越来越多的言语到场闭包,匿名函数等异常典范的函数式编程的特征,从某种程度上来说,函数式编程正在逐渐“同化”敕令式编程。

6. 补充浏览

(本期完)

# SegmentFault 手艺周刊 #

「手艺周刊」是社区迥殊推出的手艺内容系列,一周一主题。周刊挑选的每篇内容,是作者的独到见解,踩坑总结和履历分享。

每周二更新,迎接「关注」或许「定阅」。人人也可以在评论处留言本身感兴趣的主题,引荐主题相干的优异文章。

    原文作者:Noodles
    原文地址: https://segmentfault.com/a/1190000007784565
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞