函数式编程 素颜马尾好姑娘i 2022-05-29 02:15 750阅读 0赞 # 函数式编程 # 目前程序届分为两类编程:命令式和函数式,面向对象编程本身也是命令式编程的范畴. 函数式编程有两个最基本的运算:合成和柯里化。 ## 合成 ## 如下:compose包含函数f,g合成 const compose = function (f, g) { return function (x) { return f(g(x)); }; } ## 柯里化 ## 把接受多个参数的函数变换成接受一个单一参数(最初函数的第一个参数)的函数 f(x)和g(x)合成为f(g(x))前提,就是f和g都只能接受一个参数。 // 柯里化之前 function add(x, y) { return x + y; } add(1, 2) // 3 // 柯里化之后 function addX(y) { return function (x) { return x + y; }; } addX(2)(1) // 3 ## 3个条件 ## 编程函数,需要满足下面3个条件,即可转换成纯数学函数。 每个函数必须包含输入参数(作为自变量) 每个函数必须有返回值(作为因变量) 无论何时,给定参数调用函数时,返回值必须一致。 根据上面的条件可以归纳出下面的扩展要求: ## 高阶函数 ## 高阶函数实际上就是函数的函数,它是所有函数式语言的性质。 ## 递归、尾调用和尾递归 ## 由于变量不可变,纯函数编程语言里面无法实现循环,这是因为for循环使用可变的状态作为计数器,而while循环或者do-while循环需要可变的状态作为跳出循环的条件。因此函数式语言里面只能用递归来解决迭代问题,这使得函数式编程严重依赖递归。 ## 流计算模式 ## 这个概念来自于SICP里面的第3章,可以理解为unix里面的pipline,使用它可以让代码具有申明式的语义化、模块化,更加富有表现力。 以javascript为例,设计好的风格的代码表现如下: getAsyncStockData() .filter(quote => quote.price > 30) .map(quote => quote.price) .forEach(price => console.log(`Prices higher than $30: ${price}`)); # 实用建议 # 函数中不使用全局变量和IO,有入参和返回值 使用map and reduce对列表进行操作,不使用循环迭代 声明式,而不是命令式 不改变原始数据 # 参考资料 # 函数式编程入门教程[http://www.ruanyifeng.com/blog/2017/02/fp-tutorial.html][http_www.ruanyifeng.com_blog_2017_02_fp-tutorial.html] 理解函数式编程[https://www.cnblogs.com/cpselvis/p/6271008.html][https_www.cnblogs.com_cpselvis_p_6271008.html] [http_www.ruanyifeng.com_blog_2017_02_fp-tutorial.html]: http://www.ruanyifeng.com/blog/2017/02/fp-tutorial.html [https_www.cnblogs.com_cpselvis_p_6271008.html]: https://www.cnblogs.com/cpselvis/p/6271008.html
相关 函数式编程 函数式编程-Stream流 1. 概述 1.1 为什么学? 能够看懂公司里的代码 大数量下处理集合效率高 代码可读性高 消灭嵌套地狱 我不是女神ヾ/ 2023年10月15日 23:50/ 0 赞/ 137 阅读
相关 函数式编程 函数式编程的主要设计点在于避免使用状态和可变的数据,即 stateless and immutable。 RXJS:响应式编程抽象出了流这个概念,提高了代码的抽象级别,我们 忘是亡心i/ 2023年06月06日 12:22/ 0 赞/ 64 阅读
相关 函数式编程 原文地址:[http://www.defmacro.org/ramblings/fp.html][http_www.defmacro.org_ramblings_fp.html 蔚落/ 2022年08月09日 05:28/ 0 赞/ 291 阅读
相关 函数式编程 函数式编程是一种编程模型,他将计算机运算看做是数学中函数的计算,并且避免了状态以及变量的概念 对象是面向对象的第一型,那么函数式编程也是一样,函数是函数式编程的第一型 蔚落/ 2022年06月14日 05:07/ 0 赞/ 416 阅读
相关 函数式编程 > 原文链接:[https://github.com/EasyKotlin][https_github.com_EasyKotlin] 第8章 函数式编程(FP) > 分手后的思念是犯贱/ 2022年06月08日 08:38/ 0 赞/ 647 阅读
相关 函数式编程 什么是函数式编程 函数式编程是一种编程规范,常见的编程规范有命令式编程,函数式编程,逻辑式编程 ,常见的面向对象编程也是一种命令式编程。 命令式编程 :命令式编程是面向 ╰半橙微兮°/ 2022年05月30日 02:06/ 0 赞/ 308 阅读
相关 函数式编程 函数式编程 目前程序届分为两类编程:命令式和函数式,面向对象编程本身也是命令式编程的范畴. 函数式编程有两个最基本的运算:合成和柯里化。 合成 如下:compo 素颜马尾好姑娘i/ 2022年05月29日 02:15/ 0 赞/ 751 阅读
相关 函数式编程 函数式编程 函数是Python内建支持的一种封装,我们通过把大段代码拆成函数,通过一层一层的函数调用,就可以把复杂任务分解成简单的任务,这种分解可以称之为面向过程的程序设 傷城~/ 2022年05月18日 07:44/ 0 赞/ 357 阅读
相关 函数式编程 [函数式编程另类指南][Link 1] 原文链接:[Functional Programming For The Rest of Us][] 原文作者:Vyachesla 刺骨的言语ヽ痛彻心扉/ 2022年04月13日 10:46/ 0 赞/ 414 阅读
相关 函数式编程 面向对象编程,我想大家都很清楚了. 函数式编程是将函数本身作为处理对象的编程范式. 最常用的就是lambda(匿名函数),有木有印象!!! 而且在定义一个lambda的 水深无声/ 2021年06月24日 14:36/ 0 赞/ 635 阅读
还没有评论,来说两句吧...