开发者社区> 问答> 正文

谈一谈你理解的函数式编程?

谈一谈你理解的函数式编程?

展开
收起
请回答1024 2020-04-06 15:56:04 1593 0
2 条回答
写回答
取消 提交回答
  • 有点尴尬唉 你要寻找的东西已经被吃掉啦!

    使用函数来编程的方式,属于数学category里的一个范畴学,早已有之,只不过恰好应用到了编程来了而已。

    其核心是:在思考问题时,使用不可变值和函数,函数对一个值进行处理,映射成另一个值。(注意这里的不可变值,搞懂了外什么在函数式接口中不能改变函数外的变量值了,还一般要求是final的)

    函数不能有副作用:我就当做是不影响函数外的任何变量吧,就是函数必须要是在自己的方法里面定义变量来操作或者传一个final的变量进来。但是也不会有绝对的不能影响吧,所有如果对使用者没有太大影响的话就可以的吧。另一个理解就是从范畴学来讲:函数式编程只是范畴论的运算方法,跟数理逻辑、微积分、行列式是同一类东西,都是数学方法。所以函数式编程要求函数必须是纯的,不能有副作用。因为它是一种数学运算,原始目的就是求值,不做其他事情,否则就无法满足函数运算法则了。

    在函数式编程中,函数就是一个管道(pipe)。这头进去一个值,那头就会出来一个新的值,没有其他作用。

    2020-04-06 21:06:16
    赞同 展开评论 打赏
  • 简单说,"函数式编程"是一种"编程范式"(programming paradigm),也就是如何编写程序的方法论。

    它具有以下特性:闭包和高阶函数、惰性计算、递归、函数是"第一等公民"、只用"表达式"。

    2020-04-06 21:09:04
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
为什么要学函数式编程? 立即下载
软件开发之禅 立即下载
Go语言路上踩过的坑 立即下载