百科问答小站 logo
百科问答小站 font logo



什么是函数式编程,它解决什么问题? 第1页

  

user avatar   catchen 网友的相关建议: 
      

那要看你说的是多么纯粹的函数式编程了。

函数式编程的核心是,程序函数如同数学函数一样具备不变性,相同的输入必然会导致相同的输出,不会因为函数以外的信息影响。最简单的 f(x)=x,对于任何一个 x 都只有一个确定的 f(x),不会发生昨天 f(x) 和今天 f(x) 不一样的情况。(也就不会发生昨天好好的代码今天出 bug 了的情况。)

举一个具体的例子,函数式编程可以用一个函数表示界面上按钮该显示成什么样子。这个函数的输入包括鼠标是否在按钮上按下了、按钮是否禁用了等信息,输出就是按钮应该显示的样子。对于任何确定的输入,输出都是恒定不变的。这体现出了一种人们常说的函数式编程特性:描述 what 而不是 how。例如说,在上面这个例子里,函数式编程只描述了按钮应该显示成什么样子,但没有具体提供把按钮从当前样子重绘成新的样子需要的步骤。具体的步骤是函数式编程语言底层为你处理的事情。

描述 what 而无需描述 how 能够提升程序的可靠性,这是函数式编程的一个好处。尽管计算机底层运作还是需要一条一条指令地执行,但因为函数式语言的底层提供了可靠的翻译,比你自己去写某个操作的每一个步骤要可靠。

与此同时,描述 what 的代码往往比描述 how 的代码更精简,例如说把大象放进冰箱里的三个步骤需要三句话,但说明此时此刻大象已经在冰箱里只需要一句话。函数式语言的底层自己想办法把大象搞进冰箱里,不需要你操心。




  

相关话题

  以英语为母语的人写代码时是什么感觉? 
  如何将 C 语言发挥到极致? 
  室友想抄我的代码,给还是不给? 
  编程语言用let等关键字声明变量有什么好处? 
  这样一个数据库分析软件需难度高吗? 
  在C#下有什么好办法可以替代if-else和switch-case? 
  怎么看c#排行飙这么高? 
  如何评价博客园关于 C++ 的这篇热门文章? 
  喜欢编程而又干着程序员的工作是一种什么样的体验? 
  设计模式有何不妥,所谓的荼毒体现在哪? 

前一个讨论
英伟达 RTX 3080 Ti 是智商检测卡吗?
下一个讨论
勒芒是个怎样的赛道?为什么要用 24h 这种赛制?





© 2024-11-25 - tinynew.org. All Rights Reserved.
© 2024-11-25 - tinynew.org. 保留所有权利