代币
关键词和特殊符号
大多数非空白unicode可以用作Agda名称的一部分,但有两种例外情况:
- 特殊符号
- 具有特殊含义的字符,不能出现在名称中。这些是
.;{}()@“
.
- 关键字
不能显示为名称部分,但可以出现名称中包含其他字符。
=
|
->
→
:
?
\
λ
∀
..
...
摘要
鳕鱼
共性的 建造师
数据
eta-e质量
领域
对于所有人
躲藏
进口
在里面
感应的
中缀
中缀
中缀
实例
让
宏 模块
相互的
无环境质量
打开
重叠
图案
假设
原始的
私有的
公众的
引用 引用上下文
引用目标
报价条款 记录
重命名
重写
设置
语法
战术
无报价
unquoteDecl(取消报价)
非引用定义 使用
哪里
具有
这个设置
关键字可以带有数字后缀(可选下标)(请参见人群级别). 例如设置42
和设置₄₂
两者都是关键字。
姓名
A类限定名是的非空序列姓名由点分隔(.
). A类名称是一个交替的序列命名零件和下划线(_
),包含至少一个名称部分。A类名称部分是非空的unicode字符序列,不包括空格,_
,以及特殊符号。名称部分不能是关键字不能以单引号开头,'
(用于字符文字,请参阅直接常量(见下文)。
- 示例
- 有效期:
数据?
,::
,如果_则_ else_
,0亿
,_⊢_∈_
,x=y
- 无效:
数据_?
,食品__bar
,_
,a;b条
,[_.._]
名称中的下划线指示使用名称时参数的位置作为操作员。例如,应用程序_+_ 1 2
可以写为1
+ 2
。请参阅Mixfix运算符了解更多信息。因为大多数序列个字符是有效的名称,空格比其他字符更重要语言。在上面的示例中+
是必需的,因为1+2
是有效的名称。
限定名用于引用其他模块中定义的实体。对于实例前奏曲。布尔特鲁
指的是名称真实的
定义在模块前奏曲。布尔
。请参阅模块系统了解更多信息。
直接常量
有四种类型的文字值:整数、浮点、字符和串。请参见内嵌函数对应类型,以及文字过载了解如何支持用户定义类型的文字。
- 整数
十进制或十六进制的整数值(前缀为0x个
)符号。非负数默认映射到内置自然数,但可能会过载。负数没有默认值解释,只能通过过载.
示例:123
,0xF0F080个
,-42个
,-0xF(0xF)
- 浮子
标准表示法中的浮点数(带方括号表示可选部件):
浮点::=[-]十进制。十进制[指数]|[-]十进制指数指数::=(e|e)[+|-]十进制
这些映射到内置浮点不能超载。
示例:1
,-5.0秒+12秒
,1.01e-16
,4.2第9版
,50e3型
.
- 字符
字符文字用单引号括起来('
). 他们可以是单个(unicode)字符,而不是'
或\
或逃跑字符。转义字符以反斜杠开头\
后跟一个转义码。转义码是十进制或十六进制的自然数(前缀为x个
)协议双方:0
和0x10英尺/小时
(1114111
),或其中之一以下特殊转义码:
代码 |
腹水 |
代码 |
腹水 |
代码 |
腹水 |
代码 |
腹水 |
一 |
7 |
b条 |
8 |
t吨 |
9 |
n个 |
10 |
v(v) |
11 |
(f) |
12 |
\ |
\ |
' |
' |
” |
” |
NUL(无) |
0 |
SOH公司 |
1 |
STX公司 |
2 |
交易所交易系统 |
3 |
EOT公司 |
4 |
ENQ公司 |
5 |
确认 |
6 |
BEL公司 |
7 |
英国标准 |
8 |
HT(高温) |
9 |
如果 |
10 |
及物动词 |
11 |
FF公司 |
12 |
CR公司 |
13 |
SO公司 |
14 |
硅 |
15 |
DLE公司 |
16 |
数据中心1 |
17 |
数据中心2 |
18 |
数据中心3 |
19 |
DC4公司 |
20 |
NAK公司 |
21 |
同步 |
22 |
欧洲交易委员会 |
23 |
CAN总线 |
24 |
相对长度单位 |
25 |
附属的 |
26 |
电子稳定控制系统 |
27 |
可行性研究 |
28 |
GS公司 |
29 |
RS系列 |
30 |
美国 |
31 |
服务提供商 |
32 |
DEL公司 |
127 |
|
|
字符文字映射到内置字符类型和不能过载。
示例:“A”
,'∀'
,'\x2200'
,“\ESC”
,“\ 32”
,“\n”
,'\''
,'"'
.
- 字符串
字符串文字是包含在双引号”
。它们遵循的规则与字符字面常数除了双引号”
更需要逃避比单引号'
。字符串文本映射到内置字符串类型默认情况下,但可以是过载.
例子:"Привет \“мир\”\n“
.
孔洞
孔洞是由Emacs模式。中包含的任何文本{!
和!}
是一个孔,可能包含嵌套孔。没有内容的洞可以写?
。有许多Emacs命令对孔。类型检查器忽略孔的内容并将其视为未知(请参阅隐式参数).
例子:{! (f) {!x!} 5 !}
编译指示
Pragmas是附在{-#
和#-}
有特别的对系统的意义。请参见编译指示查看杂注的完整列表。
布局
Agda使用与Haskell类似的规则对布局敏感,但有例外该布局是必需的:不能使用显式{
,}
和;
到避开它。
布局块包含以下序列声明并由其中一个布局关键字:
抽象字段实例让宏相互假设原语private where
布局关键字后的第一个标记决定块的缩进。任何缩进超过此值的标记都是前一语句的一部分,位于同一级别开始一条新语句,外部有缩进较少的标记街区。
数据国家: 设置 哪里 --开始布局块
--注释不是标记
零 :国家--报表1
苏克 :国家→ --报表2国家--也是报表2
一 :国家--布局块外部一=真空零点
请注意,布局关键字的缩进并不重要。
Agda文件包含一个顶级布局块,具有特殊规则顶级模块的内容不需要缩进。