代码之美与证明之美:探寻二者的关系
1. 引言
在编程领域,并非所有人都将代码与美联系在一起,但对有些人而言,这是一种自然而然的关联。代码的语法、编写习惯等方面时常引发激烈讨论,这表明很多人都关注着代码中的某种美感。编码是一个创造性的过程,追求美是其中的一个驱动力。当创造出具有美感的代码时,人们会获得更多的满足感。代码之美体现在多个方面,如程序拥有漂亮的图形用户界面(GUI)、源代码看起来优雅、程序结构简单易懂等。要识别美丽的代码,就需要明确“美”对于代码的含义,找到评判代码是否美丽的理由。
2. 功能编程语言与代码之美
功能编程语言通常以其代码的优美以及对代码推理的优美而闻名。人们往往期望优美的代码也易于证明,甚至可以说,只有当代码有一个优美的证明时,才能被归类为优美的代码。为了研究代码之美与证明之美之间的关系,我们选择了惰性功能编程语言 Clean 以及其交互式证明助手 Sparkle 进行小案例研究。
3. 经典优美代码与优美证明的案例
Clean 标准库中有两个常用的函数: map 和 flatten 。
- 函数定义 :
map :: (a -> b) ![a] -> [b]
flatten :: ![[a]] -> [a]
map f [x:xs] = [f x: map f xs]
flatten [x:xs] = x ++ flatten xs
map f [] = []
flatten [] = []
超级会员免费看
订阅专栏 解锁全文
954

被折叠的 条评论
为什么被折叠?



