Functional programming 如何在Agda'中定义别名;s型三角洲?

Functional programming 如何在Agda'中定义别名;s型三角洲?,functional-programming,agda,Functional Programming,Agda,我的代码: law : ∀ a x → ((suc a) * (suc a) ÷ (suc a) ⟨ x ⟩) →ℕ ≡ (suc a , refl) law a x = refl 我认为有太多的suc a,我想给suc a一个别名,类似于(这段代码只是描述了我的想法,它没有编译): 我能做到吗?当然。您可以使用let law : ∀ a x → let s = suc a in (s * s ÷ s ⟨ x ⟩) →ℕ ≡ (s , refl) law a x = refl 或定义匿名模块

我的代码:

law : ∀ a x → ((suc a) * (suc a) ÷ (suc a) ⟨ x ⟩) →ℕ ≡ (suc a , refl)
law a x = refl
我认为有太多的
suc a
,我想给
suc a
一个别名,类似于(这段代码只是描述了我的想法,它没有编译):


我能做到吗?

当然。您可以使用
let

law : ∀ a x → let s = suc a in (s * s ÷ s ⟨ x ⟩) →ℕ ≡ (s , refl)
law a x = refl
或定义匿名模块:

module _ (a : ℕ) where
  s = suc a
  law : ∀ x → (s * s ÷ s ⟨ x ⟩) →ℕ ≡ (s , refl)
  law x = refl

模块外的
法律
与您提供的签名类型相同。

谢谢您的回答!
module _ (a : ℕ) where
  s = suc a
  law : ∀ x → (s * s ÷ s ⟨ x ⟩) →ℕ ≡ (s , refl)
  law x = refl