背景 上篇文章 函数式JS: 一种continuation monad推导 得到了一个类似promise的链式调用,引发了这样的思考:难道promise是monad?如果是的话又是怎样的monad呢?来来来,哥哥带你推倒,哦,不,是推导一下! Monad Monad是haskell里很重要的概念,作为一种类型,有着固定的操作方法,简单的可以类比面向对象的接口。 定义   unit :: a -> Monad a flatMap :: Monad a -> (a -> Monad b) -…

2022年10月5日 0条评论 911点热度 0人点赞 帮助教程 阅读全文

背景 js(javascript)揉合了面向对象和面向函数的特性,使用js解释如何从面向对象迁移到面向函数非常适合,这部分介绍js continuation monad的简明推导。 continuation monad monad的一种,用于模式化cps(也就是回调风格),monad是函数型语言处理副作用的其中一种方式,可以理解为容器(见末尾参考) 定义 unit :: a -> monad a bind :: monad a -> (a -> monad b) -> monad b &nb…

2022年10月5日 0条评论 940点热度 0人点赞 帮助教程 阅读全文