代码示例
您可以在文档中包含代码示例。
如果您给文档文件扩展名.拉格达.rst
,代码中的示例可以作为持续集成的一部分进行检查。这个顺便说一句,它们将保证始终与最新版本的阿格达。
提示
如果您在Emacs中编辑文档文件,您可以使用Agda的交互式模式来编写代码示例。使用M-x公司 agda2模式
切换到Agda模式,以及M-x公司 rst模式
切换回rST模式。
语法
嵌入代码示例的语法取决于:
- 代码示例是否应为看得见的文档的读者。
- 代码示例是否包含有效的Agda代码(应进行类型检查)。
可见的检查过的代码示例
这是用户将看到的代码,也将进行检查Agda的正确性。理想情况下,文档中的所有代码都应该此形式:两者看得见的和有效的.
它可以独立显示:::
data Bool:设置位置
对错:布尔或在段落末尾::
data Bool:设置位置
对错:布尔代码片段到此结束。
结果:
它可以独立显示:
或者在段落末尾:
代码片段到此结束。
提示
记得在::
.否则,代码将由Agda检查,但它将出现文档中可变宽度的段落文本。
可见、未检查的代码示例
这是读者将看到的代码,但Agda不会检查。它是对于错误代码、程序输出或语言中的代码示例很有用与Agda不同。
.. 代码块:: 阿格达
--这不是有效的定义
ω : ∀一→一ωx=x个.. 码块:: 哈斯克尔
--这是haskell代码
数据 布尔 = 真的 | False(错误)
结果:
--这是haskell代码
数据 布尔 = 真的 | False(错误)
不可见的检查代码示例
这是未向读者显示但用于类型检查的代码实际显示的代码。
这可能是众所周知的定义,不需要再次显示。
..
::
data Nat:设置位置
零:自然
例如:Nat→ 国家
::
添加:Nat→ 国家→ 国家
加零y=y
添加(suc x)y=suc(添加x y)
结果:
添加 :国家→国家→国家加零y=年添加(例如x)年=苏克(加x y)
文件结构
文档文字文件(.拉格达*)作为整个Agda文件进行了类型检查,好像所有有文字的文本都被空白所取代。因此,压痕是进行全局解释。
名称空间
在文档中,从文档/用户手册/根目录。例如,文件文档/用户手册/语言/数据类型.lagda.rst应该以一个隐藏的代码块开始,将模块的名称声明为语言.数据类型:
范围界定
有时你会想在同一个地方的不同地方使用同一个名字文档文件。您可以通过使用隐藏模块声明来将定义与文件的其余部分隔离开来。
..
::
模块范围-1,其中
::
foo:国家
foo=42
..
::
模块范围-2,其中
::
foo:国家
foo=66
结果: