首条无人驾驶地铁上线 车头视角如穿越时空
|
所有功能语言都对模式匹配提供了极大的支持。通常,模式匹配允许人们编写非常有表现力的代码。 这是一个关于选项(布尔)类型的模式匹配的示例: 相同的代码,没有模式匹配: 毫无疑问,模式匹配版本更加富有表现力和简洁。
模式匹配还提供了编译时的详尽性保证,这意味着我们将不会忘记检查可能的情况。没有以非功能性语言提供的此类保证。 与命令式(主流语言)不同,函数式编程语言鼓励使用纯函数式编程。 什么是纯函数?这个想法非常简单-给定相同的输入,纯函数将始终返回相同的输出。例如,2 + 2将始终返回4,这意味着加法运算符+是纯函数。 纯函数不允许与外界进行交互(进行API调用,甚至无法写入控制台)。甚至不允许更改状态。这与OOP所采取的方法完全相反,在OOP中,任何方法都可以自由地改变其他对象的状态。 可以很容易地从不纯函数中分辨出纯函数-函数是不带参数,还是不返回值?然后,这是一个不纯函数。 这种方法似乎很局限,可能需要一段时间才能习惯。起初,这肯定让我感到困惑! 纯函数有什么好处?它们非常易于测试(无需模拟和存根)。关于纯函数的推理很容易-与OOP不同,无需牢记整个应用程序状态。您只需要担心当前正在使用的功能。 纯函数可以轻松组成。纯函数对于并发非常有用,因为函数之间没有共享状态。重构纯函数是纯粹的乐趣-只需复制和粘贴,无需复杂的IDE工具。 简而言之,纯函数将欢乐带回到编程中。 函数式编程鼓励使用纯函数-当90%以上的代码库由纯函数组成时,这很好。一些语言将其极端化,并完全禁止使用非纯函数(这并不总是一个好主意)。
(2) 不变的数据结构 让我们先绕道而行,然后再继续排名。为什么要烦恼函数式编程?函数式编程使我们高枕无忧。 是的,函数式编程可能听起来很吓人,但实际上没有什么可担心的。简而言之,函数式语言做出了许多正确的设计决策,而其他语言则做出了错误的决策。在大多数情况下,函数式语言将具有正确的功能:具有代数数据类型支持的功能强大的类型系统,无null,错误处理无异常,内置的不变数据结构,模式匹配,函数组合运算符。 函数式编程语言有哪些共同的优势使其在我们的排名中如此高?
(1) 使用纯函数编程 (编辑:盐城站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |

