我以前写过很多识字的程序。
你写什么作为黑线鳕评论,你在文学部分写什么?
外部 API 文档进入Haddock 注释。其他一切都进入识字部分。“其他一切”可能包括:
- 数据结构的内部不变量
- 为什么你这样做
- 代码的设计是什么
- 为什么选择这个设计,还有什么其他设计被尝试和发现想要
您如何将文学编程扩展到多个文件?
与将大型 LaTeX 文档缩放为多个文件的方式相同:每个模块一个文件,然后是一个包含\include
所有文件的巨型文件。
谁能给我举一个例子,在一个包含多个模块的包中使用文学编程?
它不是 Haskell,而是Quick C-- 编译器是一个使用文学编程编写的大型函数式程序。
您在较大的软件包中使用文学编程的经验是什么?
文学编程非常适合记录棘手、困难或复杂的模块。对于大多数简单的模块,外部 API 文档(例如 Haddock)就足够了。没有一个有文化的程序真的会给你一个包含十几个模块的设计的大图。为此,您需要其他工具和技术。
识字的 Haskell 的哪种口味(markdown、latex、...)是首选?
如果您要进行如此重大的投资,我肯定会选择 LaTeX,因为它具有数学能力,而且该工具通常更强大。
你为什么要使用识字的 Haskell 或普通的 Haskell 编程?您是否同时使用这两种风格进行编程,如果是,为什么?
我的 Haskell 代码几乎都是普通的,原因有二:
我和有更多 Haskell 经验的资深人士一起工作,他们已经放弃了有读写能力的 Haskell。只有系统中最古老的模块才有可能成为 .lhs。
对于 Haskell 来说,文学编程是多余的。文学编程工具的一大好处是,您可以摆脱编译器或语言定义可能对您的代码出现顺序施加的任何约束。但是 Haskell 几乎没有这样的限制:使用前没有定义,对于典型的函数定义,我可以选择let
-binding 或where
-binding 辅助名称(或两者)。 识字编程绝不仅仅是花哨的评论,而“识字”的 Haskell 就是你所得到的一切。这不值得费心。
你更喜欢块式(\begin{code})还是鸟式(>)?为什么?
我非常喜欢块样式: