今日推荐
今天推荐欧阳继超老师的新书——《前端函数式攻城指南》,本书获CrossEye重磅推荐,致力于教你用JavaScript编写出优雅的函数式代码,以不一样的方式思考和解决问题。
?依然放猛料,我们将在评论区选出五位幸运读者送书,名单将在下周五(10.28日)公布,在此之前参与评论都有机会哦。?
Surprise:章节抢先看!
函数式编程可以说是非常古老的编程方式,但是近年来函数式编程越来越受到人们的关注。不管是Google力推的Go、学术派的Scala与Haskell,还是Lisp的新方言Clojure,这些新的函数式编程语言都越来越受到人们的关注。
当然,不仅是后端函数式编程语言层出不穷,前端也不甘示弱。
虽然前端浏览器只支持一门语言——JavaScript,但是能支持函数式编程的JavaScript库越来越多,比如Functional JavaScript、Underscore、lodash等。不仅如此,还有一些能编译成JavaScript的语言,能让前端的函数式编程发挥到极致,例如Haskell的PureScript、Scala的Scalajs、Clojure的ClojureScript。
我两次都以Clojure结尾,是因为我喜欢把重点留到最后。Clojure独特于其他语言,它既是一门新的语言、一门函数式编程范式的语言,又流淌着古老的血液——Lisp。这是我选择用Clojure来诠释函数式编程的原因之一。
那么为什么我要选JavaScript作为函数式编程的目标呢?
Michael Fogus用200多页向大家展示了不一样的Functional JavaScript编程方式,可惜Fogus作为ClojureScript编译器的贡献者,竟然选择了Underscore作为函数式库,直接导致并不能完全展示JavaScript所能达到的函数式编程能力。
有趣的是,ClojureScript的作者把ClojureScript的不可变(Immutable)数据结构移植到了JavaScript,这彻底将 JavaScript 的函数式编程提升到了用其他库都完成不了的新高度。
不仅如此,Mozilla的Sweet.js更是完成了另一个突破——JavaScript的macro,它虽然不能算是函数式的概念,但也算是Lisp语言的一项独门绝技了。
这一切的一切,都让我忍不住要帮Fogus出一本续集
用JavaScript实现其他函数式编程语言如Clojure甚至是Haskell的奇技淫巧,让大家进一步感受用JavaScript这门不完美的语言同样可以编写出优雅的函数式代码,以不一样的方式思考和解决问题。
所以不管你是想转行JavaScript的Clojure开发者,还是想了解Clojure或函数式编程的JavaScript开发者,都可以在此找到一些启发。