[Javascript] Either Functor】的更多相关文章

In normal Javascript, we do undefine check or null check: , name: "Suvi"}; var name = person.name ? person.name: null; Sometime backend data return may contain or not contain 'name' prop. So let's see how to define a Maybe() functor: var _Maybe.…
EventStream: You can use RxJS, BaconJS or any reactive programming lib you want: var id_s = map(function(e) { return '#'+e.id }, Bacon.fromEventTarget(document, "click")) var element_s = map(document.querySelector, id_s) //=> EventStream(Elem…
IO functor doesn't like Maybe(), Either() functors. Instead of get a value, it takes a function. API: .toIO() // conver a function to IO IO() // The same a to toIO; but this is a just static method runIO //IO is lazy, just like Observable, if you don…
Either Functor: // API Right(val) // resolve the value Left(val) // return error message Examples: map(function(x) { ; }, Right()) //=> Right(3) map(function(x) { ; }, Left(‘some message)) //=> Left(‘some message’) var determineAge = function(user){…
Well, this stuff will be a little bit strange if you deal with it first time. Container Object: Just a wrapper / contianer for values No Method No Nouns var _Container = function(val){ this.val = val; } var Container = function(x){ return new _Contai…
Functor laws: 1. Identity: map(id) == id 2. Composition: compose(map(f), map(g)) == map(compose(f,g)) compose( map(toUpper), map(reverse), toArray )("bingo"); compose( map( compose(toUpper reverse), toArray ) )("bingo") Natural Transfo…
转:JavaScript函数式编程(三) 作者: Stark伟 这是完结篇了. 在第二篇文章里,我们介绍了 Maybe.Either.IO 等几种常见的 Functor,或许很多看完第二篇文章的人都会有疑惑: 『这些东西有什么卵用?』 事实上,如果只是为了学习编写函数式.副作用小的代码的话,看完第一篇文章就足够了 kk:很贴近实际.第二篇文章和这里的第三篇着重于的是一些函数式理论的实践,是的,这些很难(但并非不可能)应用到实际的生产中,因为很多轮子都已经造好了并且很好用了.比如现在在前端大规模使…
转: JavaScript函数式编程(二) 作者: Stark伟 上一篇文章里我们提到了纯函数的概念,所谓的纯函数就是,对于相同的输入,永远会得到相同的输出,而且没有任何可观察的副作用,也不依赖外部环境的状态(我偷懒复制过来的). 但是实际的编程中,特别是前端的编程范畴里,"不依赖外部环境"这个条件是根本不可能的,我们总是不可避免地接触到 DOM.AJAX 这些状态随时都在变化的东西.所以我们需要用更强大的技术来干这些脏活. 一.容器.Functor 如果你熟悉 jQuery 的话,应…
转:JavaScript函数式编程(一) 一.引言 说到函数式编程,大家可能第一印象都是学院派的那些晦涩难懂的代码,充满了一大堆抽象的不知所云的符号,似乎只有大学里的计算机教授才会使用这些东西.在曾经的某个时代可能确实如此,但是近年来随着技术的发展,函数式编程已经在实际生产中发挥巨大的作用了,越来越多的语言开始加入闭包,匿名函数等非常典型的函数式编程的特性,从某种程度上来讲,函数式编程正在逐步"同化"命令式编程. JavaScript 作为一种典型的多范式编程语言,这两年随着React…
一.引言 javascript函数式编程在最近两年来频繁的出现在大众的视野,越来越多的框架(react,angular,vue等)标榜自己使用了函数式编程的特性,好像一旦跟函数式编程沾边,就很高大上一样,而且还有一些专门针对函数式编程的框架和库,比如:RxJS.cycleJS.ramdaJS.lodashJS.underscoreJS等.近年来随着技术的发展,函数式编程已经在实际生产中发挥巨大的作用了,越来越多的语言开始加入闭包,匿名函数等非常典型的函数式编程的特性,从某种程度上来讲,函数式编程…