Es6 函数式编程 MayBe函子的简单示例

初级函子的作用非常简单,使用场景主要体现在:深入访问object的属性的时候,不会担心由于属性不存在、undefined、null等问题出现异常。

MayBe.js

var MayBe = function (val) {
    this.value = val;
}

MayBe.of = function (val) {
    return new MayBe(val);
}

MayBe.prototype.isNothing = function () {
    return (this.value === null || this.value === undefined);
}

MayBe.prototype.map = function (fn) {
    return this.isNothing() ? MayBe.of(null) : MayBe.of(fn(this.value));
}

// demo1: MayBe?{value: "Mr. GOOGLE"}
MayBe.of(‘Google‘)
     .map(_ => _.toUpperCase())
     .map(_ => "Mr. " + _)

// demo2: MayBe?{value: null}
MayBe.of(‘Google‘)
     .map(_ => undefined)
     .map(_ => "Mr. " + _)

原文地址:https://www.cnblogs.com/CyLee/p/9318433.html

时间: 2024-10-10 16:34:42

Es6 函数式编程 MayBe函子的简单示例的相关文章

JavaScript ES6函数式编程(三):函子

前面二篇学习了函数式编程的基本概念和常见用法.今天,我们来学习函数式编程的最后一个概念--函子(Functor). 相信有一部分同学对这个概念很陌生,毕竟现在已经有很多成熟的轮子,基本能满足我们日常的业务开发,所以没必须重复造轮子.但是,作为一名(未来)优秀的程序员,光会用怎么能行呢?必须要理解更深层的思想.下面就来学习函子部分的知识... 函子(Functor) 在正式学习函子之前,我会先抛出一个问题,先用普通的方式解决,然后转换为用函子解决,这能帮助我们更好的理解函子.同时,这也是我想说的,

JavaScript ES6函数式编程(二):柯里化、偏应用、组合、管道

上一篇介绍了闭包和高阶函数,这是函数式编程的基础核心.这一篇来看看高阶函数的实战场景. 首先强调两点: 注意闭包的生成位置,清楚作用域链,知道闭包生成后缓存了哪些变量 高阶函数思想:以变量作用域作为根基,以闭包为工具来实现各种功能 柯里化(curry) 定义:柯里化是把一个多参数函数转换为一个嵌套的一元函数的过程. 先看个简单的例子,这是一个名为 add 的函数:const add = (x, y) => x + y;调用该函数 add(1, 1).add(1, 2).add(1, 3)...很

编程范式 —— 函数式编程入门

该系列会有 3 篇文章,分别介绍什么是函数式编程.剖析函数式编程库.以及函数式编程在 React 中的应用,欢迎关注我的 blog 命令式编程和声明式编程 拿泡茶这个事例进行区分命令式编程和声明式编程 命令式编程 1.烧开水(为第一人称) 2.拿个茶杯 3.放茶叶 4.冲水 声明式编程 1.给我泡杯茶(为第二人称) 举个 demo // 命令式编程 const convert = function(arr) { const result = [] for (let i = 0; i < arr.

如何编写高质量的 JS 函数(4) --函数式编程[实战篇]

本文首发于 vivo互联网技术 微信公众号? 链接:https://mp.weixin.qq.com/s/ZoXYbjuezOWgNyJKmSQmTw 作者:杨昆 ?[编写高质量函数系列],往期精彩内容: <如何编写高质量的 JS 函数(1) -- 敲山震虎篇>介绍了函数的执行机制,此篇将会从函数的命名.注释和鲁棒性方面,阐述如何通过 JavaScript 编写高质量的函数. ?<如何编写高质量的 JS 函数(2)-- 命名/注释/鲁棒篇>从函数的命名.注释和鲁棒性方面,阐述如何通

简单聊聊:函数式编程

函数式编程 ( Functional Programming ) 是一种以函数为基础的编程方式和代码组织方式,能够带来更好的代码调试及项目维护的优势.本篇主要结合笔者在实际项目开发中的一些应用,简要谈谈函数式编程. 函数 在函数式编程中,任何代码可以都是函数,且要求具有返回值,如下示例 // 非函数式 var title = "Functional Programming"; var saying = "This is not"; console.log(sayin

1.4 函数式编程示例

下面的这些示例表明,函数式编程并不是任何意义上的理论学科,你会发现,甚至可能通过现有的 .NET 方法,应用了一些函数式思想.阅读有关函数式编程的内容,将有助于更深层次地理解这些技术,并高效地使用.在这书的后面,我们还将通过一些示例来展示函数式风格重要的实际好处.在第一组示例中,我们将探讨声明式编程. 1.4 函数式编程示例

javascript函数式编程简单介绍

函数式编程在前端已经成为了一个热门的话题,近几年很多的应用程序代码库里大量使用着函数式编程思想.这里对JavaSctipt中的函数式编程做一个简单介绍. 什么是函数式编程 函数式编程是一种编程范式,主要是利用函数把运算过程封装起来,通过组合各种函数来计算结果.函数式编程意味着开发者可以在更短的时间内编写具有更少错误的代码. 函数式编程的简单例子 假设要把一个字符串转换成每个单词首字母大写,可以这样来实现: var string = 'i do like yanggb'; var result =

函数式编程入门教程(转)

初涉函数式编程语言python,转载了一篇文章,先简单来了解一下函数式编程的概念. 文章原址:http://www.ruanyifeng.com/blog/2017/02/fp-tutorial.html 函数式编程入门教程 作者: 阮一峰 日期: 2017年2月22日 你可能听说过函数式编程(Functional programming),甚至已经使用了一段时间. 但是,你能说清楚,它到底是什么吗? 网上搜索一下,你会轻松找到好多答案. 与面向对象编程(Object-oriented prog

函数式编程入门教程

你可能听说过函数式编程(Functional programming),甚至已经使用了一段时间. 但是,你能说清楚,它到底是什么吗? 网上搜索一下,你会轻松找到好多答案. 与面向对象编程(Object-oriented programming)和过程式编程(Procedural programming)并列的编程范式. 最主要的特征是,函数是第一等公民. 强调将计算过程分解成可复用的函数,典型例子就是map方法和reduce方法组合而成 MapReduce 算法. 只有纯的.没有副作用的函数,才