尝试在Agda中编译基本程序

时间:2019-03-21 13:07:29

标签: agda

我在machiene上运行了agda,但是我在运行“学习agda”教程中的基本示例时遇到了困难

网页在这里:http://learnyouanagda.liamoc.net/pages/peano.html

我整理了教程中的代码

module peano where

data ℕ : Set where
  zero : ℕ
  suc  : ℕ → ℕ

_+_ : ℕ → ℕ → ℕ 
zero + zero = zero
zero + n    = n
(suc n) + n′ = suc (n + n′) 

但是当我尝试“加载”文件时,在准备编译时会引发以下错误:

/home/adjam/Desktop/first_program.agda:3,8-13
The name of the top level module does not match the file name. The
module peano should be defined in one of the following files:
  /home/adjam/Desktop/peano.agda
  /home/adjam/Desktop/peano.lagda
  /usr/share/agda-stdlib/peano.agda

如何获取此代码以进行编译和运行?我不知道如何添加“ peano”之类的库。我是agda的初学者,如果您对代码示例有个清晰的了解,将不胜感激。

如果我愿意

data ℕ : Set where
  zero : ℕ
  suc  : ℕ → ℕ

文件编译

如果我只是这样跳过peano库

data ℕ : Set where
  zero : ℕ
  suc  : ℕ → ℕ


_+_ : ℕ → ℕ → ℕ 
zero + zero = zero
zero + n    = n
(suc n) + n′ = suc (n + n′) 

然后我得到了错误

/home/adjam/Desktop/first_program.agda:10,1-1
/home/adjam/Desktop/first_program.agda:10,1: Parse error
_+_<ERROR>
 : ℕ → ℕ → ℕ 
zero + zero = ze...

该如何解决?我需要使用Peano来编译此代码吗?如果是这样,我该怎么办?

1 个答案:

答案 0 :(得分:1)

要解决您的第一个错误,您需要仔细阅读错误消息:

  

顶级模块的名称与文件名不匹配。

您的文件名为first_program.agda,而不是peano.agda,因此出错。您需要重命名文件或调用顶级模块first_program

一旦模块头被删除,我就不会再遇到第二个错误:文件解析对我来说很好。