我发现了很多关于使用 Agda 作为证明系统的有用信息。我几乎没有发现关于使用 Agda 编写可用程序的信息。我什至找不到与最新版本的 Agda 一起编译的“hello world”示例。
所以,
有没有关于 Agda 作为编程语言的好教程?
是否有其他类似性质的语言(惰性函数依赖类型)具有更成熟的文档以将它们用作编程语言?(我在 Coq 上找到了大量很棒的文档,但同样没有“Hello World”)。
我发现了很多关于使用 Agda 作为证明系统的有用信息。我几乎没有发现关于使用 Agda 编写可用程序的信息。我什至找不到与最新版本的 Agda 一起编译的“hello world”示例。
所以,
有没有关于 Agda 作为编程语言的好教程?
是否有其他类似性质的语言(惰性函数依赖类型)具有更成熟的文档以将它们用作编程语言?(我在 Coq 上找到了大量很棒的文档,但同样没有“Hello World”)。
要在 Agda 中打印字符串,您需要std lib。您可以在此处找到 Agda 2.2.6 和 std lib 0.3的“hello world”示例。此示例不适用于当前的 Agda 2.3.0 和 std lib 0.6。我阅读了 std lib 0.6 中的一些资源,发现以下一个有效:
module hello where
open import IO.Primitive using (IO; putStrLn)
open import Data.String using (toCostring; String)
open import Foreign.Haskell using (Unit)
main : IO Unit
main = putStrLn (toCostring "Hello, Agda!")
要编译它,你需要
在我的带有 ghc-7.4.2 和 cabal-1.16.0 的 MacOSX Lion 上,这个示例运行良好。我得到一个名为“hello”的可执行程序,大小为 19.1M。
这是新生的,但有一天可能会成为一种有用的资源: