函数式

  • 谈谈我对函数式编程的思考

    今天在公司内部听月影讲《如何写“好” JavaScript》,其中重点提到了函数式编程,听完之后很有感想,于是写一篇文章来谈谈我对函数式编程的理解

    对前面的例子不感兴趣的同学可以直接拉到最后看结论。

    聊函数式编程前,先看几个高阶函数的例子,月影的PPT中也是从高阶函数讲起的

    高阶函数

    执行一次

    block.onclick = function (evt) {
      block.onclick = null;
      evt.target.className = 'hide';
      setTimeout(function () {
        document.body.remo
  • 1 函数式编程的由来

    遥想当年,盘古开天辟地,创造了计算机世界,有两位巨擘对计算机的运算能力做了模型化描述。

    一位是阿兰.图灵(Alan Turing),就是奥斯卡奖电影《模仿游戏》里的图灵,计算机软件业界的祖师爷,他是一个gay,没错,我们的祖师爷是gay,所以干这行的真不应该歧视同性恋:-) 图灵提出“图灵机”的概念,大概意思就是说,假设有一个纸带和一个打孔机,然后有一套指令,能够控制打孔机在纸带上移动、能够读取当前位置是否打了孔、能够在当前位置打一个孔,这就是一个图灵机,假设一个问题能够靠这个纸带+打孔机+指令的方式解决,那就说明这个问题是“可计算的”。当然,这只是一个理论模型,实际上没

  • Eric Elliott 函数式教程

    1. 征服 JavaScript 面试: 什么是函数式编程?
    2. 组合软件:1. 函数式编程的兴衰
    3. 为什么用 JavaScript 学习函数式编程?(软件编写)(第二部分)
    4. 函数式程序员的 JavaScript 简介 (软件编写)(第三部分)
    5. 高阶函数(软件编写)(第四部分)
    6. Reduce(软件编写)(第五部分)
    7. Functor 与 Category (软件编写)(第六部分)
    8. 函数式 Mixin(软件编写)(第七部分)
    9. 为什么在使用了类之后会使得组合变得愈发困难(软件编写)(第九部分)
    10. 借助函数完成可组合的数据类型(软件编写)(第十部分)
    11. JavaScript 让
  • 最开始接触函数式编程的时候是在小米工作的时候,那个时候看老大以前写的代码各种 compose,然后一些 ramda 的一些工具函数,看着很吃力,然后极力吐槽函数式编程,现在回想起来,那个时候的自己真的是见识短浅,只想说,'真香'。

    最近在研究函数式编程,真的是在学习的过程中感觉自己的思维提升了很多,抽象能力大大的提高了,让我深深的感受到了函数式编程的魅力。所以我打算后面用 5 到 8 篇的篇幅,详细的介绍一下函数式编程的思想,基础、如何设计、测试等。

    今天这篇文章主要介绍函数式编程的思想。

    • 函数式编程有用吗?
    • 什么是函数式编程?
    • 函数式编程的优点。

    面向对象编程(OOP)通过封装变化使得

  • JavaScript函数式编程,真香之认识函数式编程(一)

    该系列文章不是针对前端新手,需要有一定的编程经验,而且了解 JavaScript 里面作用域,闭包等概念

    组合函数

    组合是一种为软件的行为,进行清晰建模的一种简单、优雅而富于表现力的方式。通过组合小的、确定性的函数,来创建更大的软件组件和功能的过程,会生成更容易组织、理解、调试、扩展、测试和维护的软件。

    对于组合,我觉得是函数式编程里面最精髓的地方之一,所以我迫不及待的把这个概念拿出来先介绍,因为在整个学习函数式编程里,所遇到的基本上都是以组合的方式来编写代码,这也是改变你从一个面向对象,或者结构化编程思想的一个关键点。

    我这里也