在Agda中,函数有两种不同的参数传递方式:冒号前和冒号后。在冒号前传递参数时,需要使用大括号将所有参数括起来,而在冒号后传递参数时,则可以直接在函数名后的冒号后面添加参数。以下是一个示例:
open import Data.Nat
-- 冒号前传递参数
sum1 : {n : ℕ} → (m : ℕ) → ℕ
sum1 {n} m = n + m
-- 冒号后传递参数
sum2 : ℕ → {m : ℕ} → ℕ
sum2 n {m} = n + m
-- 使用示例
ex1 : sum1 {n = 5} 3 ≡ 8
ex1 = refl
ex2 : sum2 3 {m = 5} ≡ 8
ex2 = refl
在上面的代码示例中,sum1
使用了冒号前传递参数的方式,sum2
则使用了冒号后传递参数的方式。在使用时,可以通过{}
或=
语法指定参数的值。例如,在ex1
中,我们使用{n = 5}
指定了参数n
的值为5
,在ex2
中,我们使用{m = 5}
指定了参数m
的值为5
。
上一篇:Agda. 字符的模式匹配