函数类型
写入函数类型(x) : A) → B类
,或在非依赖函数的情况下一个 → B类
例如,自然数加法函数的类型为:
向量的加法函数的类型为:
(一个 : 设置) → (n个 : 国家) → (u个 : Vec公司 一个 n个) → (v(v) : Vec公司 一个 n个) → Vec公司 一个 n个
哪里设置
是集合的类型Vec公司 一个 n个
是向量的类型n个
类型元素一个
.表格连续假设之间的箭头(x) : A)
也可以省略,以及(x) : A) (年) : A)
可以缩写为(x) 年 : A)
:
(一个 : 设置) (n个 : 国家)(u个 v(v) : Vec公司 一个 n个) → Vec公司 一个 n个
函数由lambda抽象构造,可以是类型化的,也可以是非类型化的。例如,下面的两个表达式都有类型(A) : 设置) → 一个 → 一个
(第二个表达式也会检查其他类型):
例子₁ = \ (一个 : 设置)(x个 : 一个) → x个例子₂ = \ 一个 x个 → x个
您还可以使用Unicode符号λ
(在Emacs Agda模式中键入“\lambda”或“\Gl”),而不是\
(在Emacs Agda模式下键入“\\”)。
函数的应用(f) : (x) : A) → B类
争论一 : 一个
已写入(f) 一
这种类型是B[x := 【a】
.
符号惯例
函数类型:
支柱₁ : ((x个 : 一个) (年 : B类) → C类) 是相同的as ((x个 : 一个) → (年 : B类) → C类)
支柱₂ : ((x个 年 : 一个) → C类) 是相同的as ((x个 : 一个)(年 : 一个) → C类)
支柱₃ : (对于所有人 (x个 : 一个) → C类) 是相同的as ((x个 : 一个) → C类)
支柱₄ : (对于所有人 x个 → C类) 是相同的as ((x个 : _) → C类)
支柱₅ : (对于所有人 x个 年 → C类) 是相同的as (对于所有人 x个 → 对于所有人 年 → C类)
您还可以使用Unicode符号∀
(在Emacs Agda模式中键入“\all”)而不是对于所有人
.
功能抽象:
(\x个 年 → e(电子)) 是相同的as (\x个 → (\年 → e(电子)))
功能应用:
((f) 一 b条) 是相同的as (((f) 一) b条)