Conciseness
https://swlaschin.gitbooks.io/fsharpforfunandprofit/content/posts/conciseness-intro.html
简洁性
在看过一些简单的代码之后,我们现在将继续展示主要主题(简洁性、便利性、正确性、并发性和完整性),通过类型、函数和模式匹配的概念进行筛选。
在接下来的几篇文章中,我们将研究有助于简洁性和可读性的 F# 特性。
大多数主流编程语言的一个重要目标是可读性和简洁性的良好平衡。太过简洁会导致代码难以理解或具有歧义(APL?),而太过冗长则容易淹没潜在的意义(废话太多让人找不到重点)。理想情况下,我们希望代码具有较高的信噪比,代码中的每一个词和字符都有助于代码的意义,并且尽量减少用于组织代码逻辑的模板代码。
为什么简洁很重要?这里有几个原因:
简洁的语言更倾向于声明性,说代码应该做什么而不是怎么做。也就是说,声明性的代码更注重高层次的逻辑,而不是实现的具体细节。
如果需要理解的代码行数较少,那么就更容易理解代码的含义。
你可以一次性在屏幕上看到更多代码。这可能看起来微不足道,但你能看到的越多,你能掌握的也就越多。
如您所见,与 C# 相比,F# 通常要简洁得多。这是由于以下特性:
类型推断和低开销的类型定义。 F# 的简洁性和可读性的主要原因之一是它的类型系统。 F# 使您可以根据需要轻松创建新类型。它们不会在定义或使用中造成视觉混乱,类型推断系统意味着您可以自由使用它们而不会被复杂的类型语法分心。
使用函数来提取模板代码。DRY原则(“不要重复自己”,"don't repeat yourself")是函数式语言和面向对象语言中良好设计的核心原则。在F# 中,将重复的代码提取到普通的实用函数中是非常容易的,这使你可以专注于重要的事情。
从简单的函数组成复杂的代码,并创建迷你语言。函数式方法使得创建一组基本操作变得很容易,然后以各种方式组合这些构件,建立起更复杂的行为。通过这种方式,即使是最复杂的代码也是非常简洁和可读的。
模式匹配。我们已经把模式匹配看成是一个牛逼的分支控制语句,但事实上它更具有通用性,因为它可以以多种方式比较表达式,对值、条件和类型进行匹配,然后分配或提取值,所有这些都在同一时间进行。
Last updated