本节书摘来自异步社区《haskell函数式编程入门》一书中的第1章,第1.4节.hs和.lhs文件、注释与库函数,作者 张淞,更多章节内容可以访问云栖社区“异步社区”公众号查看
1.4 .hs和.lhs文件、注释与库函数
ghci和hugs可以解析扩展名为.hs和.lhs的文件。两者所写程序在语法上完全相同,它们的差别是.lhs(literate haskell script)文件是为了能让haskell的代码生成文档。有效程序代码可以用“大于号(>)”和空格开头。比如:
add :: int -> int -> int add x y = x + y
使用.lhs文件书写代码的优点很明显。函数式编程的代码往往蕴含了编写者很大的思考量,需要用大段的注释进行解释说明,而代码又不是特别长,这个时候用.lhs最好不过了—哪部分是代码、哪部分是注释一目了然,还能生成.pdf文件方便阅读与传播。
但是,当不需要多行注释还有生成文档的时候就可以用扩展名为.hs的文件。.hs文件里全局的函数要起头写,不可以有其他字符;单行的注释用两个减号(--)开头,多行注释用“{-”开头,以“-}”结尾。全书对编写的函数有非常多的阐述与解释,并不包括在源代码中,所以用.hs文件就可以了。有时需要在文件头处对ghc与ghci声明一些编译器参数,此时需要在文件首处定义,并且以“{-#”开头,用“#-}”结尾。在后面的章节中,再具体学习使用编译器参数。
在启动ghci的时候,prelude中的一些预加载函数已经被导入了。prelude里有很多常用的函数以及数据。安装hugs的读者可以到c:program fileswinhugspackages hugsbase hugs下找到prelude.hs库函数文件,有兴趣的读者可以打开prelude或其他文件浏览代码。使用ghci的读者可以在开始菜单的程序中找到haskell的网页文档,打开library链接,找到prelude,再点击source查看。读者可以通过查看这些源文件来感受haskell程序的风格。