我安装了一个Agda编译器,binarys可以从这里开始:http://ocvs.cfv.jp/Agda/how-to-install-windows.html
...我试图让它编译一个简单的hello world应用程序(我发现了Agda' Hello World'在线代码)
但我之前从未使用过Emacs,而且我不知道从哪里开始,或者使用哪些命令来编译和运行。我是Agda的新手,它似乎对编译器的选择有限,而且缺乏任何一步一步的教程。下面是Emacs编译器的屏幕截图,其中包含我找到的代码:
open import System.IO using ( _>>_ ; putStr ; commit )
module System.IO.Examples.HelloWorld where
main = putStr "Hello, World\n" >> commit
我正在寻找一步一步的指示来运行一个简单的“Hello World'程序
另一个编译器的工作示例也是可接受的答案
谢谢!
答案 0 :(得分:0)
这似乎是您尝试了类似常规M-x compile
而不是任何特定的Agda功能的事情。
Emacs模式行中的Agda:run
模式指示器表明您在另一个缓冲区中有一个正在运行的Agda进程,但您没有在看它。 Agda模式可能类似于agda-eval-buffer
之类的东西,应该将当前程序传递给该进程,并在窗格的下半部分显示结果。 (如果您以其他方式无法到达该缓冲区,请尝试手动切换到类似*inferior-agda*
的缓冲区。)
您链接到的站点说它是Agda 1,您实际上应该在其他站点上寻找Agda 2。
下面是我的原始答案,可能仍会提供一些有用的见识。
该错误消息表明您需要安装make
。
我猜想在解决此问题之后可能还会缺少其他依赖项。理想情况下,文档应明确指定要安装的内容。
make
只是一个包装程序,用于运行在本地Makefile
中发现的任何命令。如果没有这样的文件,您可能需要将编制命令更改为其他命令。 (通常,Emacs会要求您运行命令,但会提供合理的默认值。)
答案 1 :(得分:0)
鉴于我正在Linux上运行,并且不是Agda专家,因此此解决方案可能不值得。但我还是会尝试一下。
当我在系统上安装了agda和agda-stdlib时,它在agda2.el
中为我提供了一个名为/usr/share/agda/emacs-mode
的文件。也就是说,我的~/.emacs.d/init.el
文件中包含以下内容:
(load-file (let ((coding-system-for-read 'utf-8))
(shell-command-to-string "agda-mode locate")))
因为,您已经在Emacs中设置了agada模式,否则除非您的agda模式版本过旧,否则上述操作将无用。
我们可以使用M-x
agda2-compile
编译您在Emacs中打开的当前文件。这样做会打开另一个提示,要求您输入Backend
。我使用GHC
作为输入并对其进行了编译。是的,我遇到了一些我不知道如何解决的错误。因此,我在搜索引擎上查询并提出:
module memo 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!")
我需要指出的是,第一行module memo where
应该与您的情况下的文件名memo.agda
相同。
答案 2 :(得分:0)
我现在在我的机器上运行了一个hello world程序。
以下代码可以编译并运行
$(function () {
$(window).scroll(function () {
if ($(this).scrollTop() > 1000) {
$('.navbar .navbar-brand img').attr('src','https://www.luatix.org/wp-content/uploads/2018/12/logo_menu_text.png');
}
if ($(this).scrollTop() < 1000) {
$('.navbar .navbar-brand img').attr('src','https://www.luatix.org/wp-content/uploads/2018/12/logo_menu_text_white.png');
}
})
});
$(function () {
$(document).scroll(function () {
var $nav = $(".navbar-brand");
$nav.toggleClass('scrolled', $(this).scrollTop() > $nav.height());
});
});
是存储在文件“ hello.agda”中的代码,我在emacs中将其编译为“ hello”。我通过选择open import Common.IO
main = putStrLn "Hello, world, strings working!"
在emacs中进行编译,这是正确安装agda后在emacs上可用的选项。
由于一位朋友为我完成了如何在emacs上安装agda的工作,因此我无法提供详细的教程,但是上面的代码可以正常工作,并且可以在linux的emacs上进行编译,这是对我有用的设置