Haskell:什么时候该注释,什么时候不该注释

jopen 10年前

大家都知道,写程序时应该让程序易读易懂,而添加注释是让你的程序实现这个目标的好方法。然而,对于一个程序,并不是你添加了足够多的注释,它就能变得的易懂易读。事实上,第一要务是你的程序要写的干净整洁,这样也就没有添加注释的必要了。编译器是不会检查你的注释的,而注释往往会滞后于代码的更新,跟实际代码实现不一致。如果你打算要写一段注释,在你真正的动手写之前,请先思考一下下面的这些问题:

这段注释是来标注一个特殊情况吗?那么,你最好别让这个特殊情况存在。例如:

a+b-b  -- 你不能删除这里的(b-b),因为这里的算术操作不按正常的结合性

如果你这里是自定义的数据类型,操作不按正常的结合性,那么,最好你就不应该让它看起来是一个Num实例。

我要再次强调:努力 – 努力 – 再努力 – 去除程序中的特殊行为特征。注释是不能为这些反常行为提供安全保护的。

不用看都明白的注释?例如:

-- 互换一对元素  swap :: (a,b) -> (b,a)

恭喜你,你使用了一个非常好的函数名称,非常好的过程语法,使得这个函数的意图非常的明显,不需要任何注释。所以,删掉这个注释。留着它早晚是个祸害,有一天它会滞后于代码的更新。

注释的内容描述Haskell语言的动作?

let b=a+1   -- 让'a'加1

这里的+1显然就是程序的执行过程。

你最好注释代码的意图,比如:

let b=a+1   -- 增加循环计数器'a'

但是,重复之前的观点,让程序干净整洁而不需要注释是最好的选择。例如:

let newCounter = oldCounter+1
英文原文标题是:Commenting。本文是在程序师网首次发表.