JavaScript轻量级函数式编程

序言

众所周知,我是一个函数式编程迷。我尽可能地传播函数思想和语言,努力阅读最新的学术论文,在业余时间学习抽象代数……即使在JavaScript中,我也拒绝编写不纯的语句,这就是编写弗里斯比教授的《函数式编程指南》的原因。是的,十足的教条狂热者。

我并不总是这样…我曾经痴迷于物品。我喜欢做“真实世界”的模特。我是人造机器人的发明者,在夜间以高超的精确度修修补补。有知觉的木偶的创造者,手指在键盘上跳舞,赋予它们生命——一个真正的1337 h4x0r格培多。然而,在写了5年面向对象的代码之后,我从来没有对结果感到非常满意。这对我来说从来都不太好。我觉得自己是个差劲的程序员。我甚至不再相信一个简单、灵活的代码库是可能的。

我想我会尝试一些不同的方法:函数式编程。我开始在日常的代码库中涉猎功能性的想法,令同事们非常沮丧的是,我一点也不知道自己在做什么。那时候我写的代码很糟糕。。原因是我对自己想要完成的事情缺乏清晰的愿景或目标。我是花了很长时间和很多垃圾程序才弄清楚如何进行函数式编程。

现在,在所有这些混乱的探索之后,我觉得纯函数编程已经实现了它的承诺。可读程序确实存在!重用确实存在!我不再创造,而是发现我的模型。我变成了一个流氓侦探,揭露了一个巨大的阴谋,软木塞钉满了数学证据。一个数字时代的库斯托以科学的名义记录下这片奇异土地的特征!它并不完美,我还有很多要学,但我从来没有像现在这样对我的工作和结果感到满意。

如果在我刚开始写这本书的时候就有这本书的话,我过渡到函数式编程的世界就会容易得多,破坏性也会小得多。这本书是双重的:它不仅会教你如何在日常代码中有效地使用函数式编程中的各种构造,更重要的是,它为你提供了一个目标;指导原则将保持你在正确的轨道上。

您将学习 Kyle首创的一个轻量函数范例,它支持声明式、函数式编程,同时提供与JavaScript世界其他部分的平衡和互操作。您将理解纯函数编程所建立的基础,而不必完全遵循范式。您将获得实践和探索函数编程的技能,而不需要重写现有的代码来很好地协同工作。您可以在您的软件生涯中向前迈进一步,而不需要像我多年前那样倒退和漫无目的地徘徊。为此欢呼吧!

Kyle是一位伟大的老师,他以对整体的不懈追求而闻名,没有一个角落或缝隙是未经探索的,但他对学习者的困境保持着同理心。他的风格与整个行业产生了共鸣,使我们所有人都得到了提升。他的作品在JavaScript的历史和大多数人的书签栏中占有稳固的位置。对你来说是很好的帮助。

函数式编程有许多不同的定义。lisp程序员的定义与haskell的定义大不相同。OCaml(关于OCaml,最早称为Objective Caml,是Caml编程语言的主要实现,开发工具包含交互式顶层解释器,字节码编译器以及最优本地代码编译器)的函数编程定义与erlang(Erlang是一种通用的面向并发的编程语言)中的范例几乎没有相似之处。甚至可以在javascript中找到几个相互竞争的定义。然而,有一种联系——一些模糊的“当我看到它时就知道”的定义,很像说瞎话(事实上,有些人确实发现函数式编程在敷衍!)这本书确实抓住了这一点。在某些圈子里,最终的结果可能不被认为是惯用的,但这里获得的知识直接适用于任何形式的函数式编程。

这本书是一个极好的地方开始你的函数式编程之旅。拿走,Kyle…