跳转到内容

Haskell/风格规范

来自维基教科书,开放的书籍,开放的世界

此页面记录了 Haskell 维基教科书中使用的一些风格规范。在开始之前,需要说明一些重要事项。

  • 此页面将为大多数现有规范提供示例;因此,如果您对如何将它们添加到页面有任何疑问,只需单击“编辑”并检查维基文本源代码。
  • 目前,这里许多规范仍在不断变化;并且多年来这本书积累了一些不一致的地方(我们将指出一些最令人讨厌的地方)。您可以使用 讨论页面 表达您对这些问题的意见,并使它们更接近解决。
  • 最后但并非最不重要的是:不要因为这些规范而责怪新手! 这样做不仅是因为许多要点还没有确定,而且因为对这些规范大惊小怪通常弊大于利 - 坚持下去的新编辑很快就会习惯主要的规范。

大写

[edit | edit source]

章节名称和标题(节名称)必须遵循 句子大小写

代码示例

[edit | edit source]

代码块用 <syntaxhighlight lang="haskell"></syntaxhighlight> 标签包裹。

numOfSolutions a b c
    | disc > 0  = 2
    | disc == 0 = 1
    | otherwise = 0
        where
        disc = b^2 - 4*a*c

我们过去更喜欢使用简单的 <code></code> 用于 GHCi 示例,因为语法高亮显示不完美。然而,自从迁移到基于 pygments 的高亮显示后,这不再是问题。

示例模板

[edit | edit source]

除了基本标签之外,还有示例模板 - Template:HaskellExampleTemplate:HaskellGHCiTemplate:HaskellGHCiExample - 点击链接查看使用说明。截至目前,这些模板主要用于书籍的前几章。使用这些模板有一些问题。在大多数地方,它们只是为示例添加了一个标题,考虑到没有示例索引,这并没有太多用处,加上在 pre/source 块已经独特布局的基础上,在块顶部添加了一些额外的缩进(但是,参见 关于示例块语义的讨论)。此外,处理这些模板对编辑来说很麻烦 - 不仅仅是因为冗长,还因为转义特殊字符的问题(参见 Template:!Template:=),这些问题使使用模板自动添加 source 和 pre 标签比它值钱还要麻烦。由于这些问题,人们一直在讨论是否完全消除示例模板,但到目前为止,还没有哪个编辑敢于在这方面做出决定。

内联代码

[edit | edit source]

内联代码示例,例如 2 + 2 == 4,应该放在 <code></code> 标签内(tt 标签在几个地方用于该目的;它们正在逐渐转换为 code 标签)。一个小的技术问题是,列表中的列表,例如 [['a','b'],"c"],应该在 code 标签内的 nowiki 标签中包裹 - 否则 MediaWiki 或其他渲染器可能会将双方括号处理为维基链接。

[edit | edit source]

待办:Template:Haskell minitocTemplate:Haskell navigation 和章节模板。

注释和参考文献

[edit | edit source]

我们大量使用脚注来呈现简短但分散的旁注、外部参考资料和指向本书后面章节的指针。参考文献应该在文本中锚定的位置添加,在 <ref></ref> 标签内,就像这个[1]。如果一个页面有脚注,Template:Haskell/NotesSection 应该添加到页面的底部,位于最后一个部分和最底部的导航模板之间。

注意

对于更长的旁注,使用 Template:Body note 创建一个正文注释,就像这个。最好不要在一个页面中放太多这样的注释……


[edit | edit source]

超链接很有用,但应该谨慎使用 - 因为维基教科书本质上仍然是一本书,它不应该过度依赖外部内容,并且还应该在印刷版中易于导航。书中的内部链接比外部链接问题少,但最好明确链接指向的内容(即,“正如我们将在 Lists II 中看到的那样”比“正如我们将在 几章之后看到的那样”更好)。待办:提及 Template:Haskell lib,以及何时最好将链接移动到脚注。

练习和解答

[edit | edit source]

待办:Template:Exercises 和解答页面。

其他

[edit | edit source]

待办:数学标签、清除模板和其他小技巧。

注释

  1. foobar
华夏公益教科书