开发者社区 问答 正文

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

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

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

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

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

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

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

    2020-04-06 21:06:16 举报
    赞同 评论

    评论

    全部评论 (0)

    登录后可评论
  • 简单说,"函数式编程"是一种"编程范式"(programming paradigm),也就是如何编写程序的方法论。

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

    2020-04-06 21:09:04 举报
    赞同 评论

    评论

    全部评论 (0)

    登录后可评论
问答地址:
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等