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!")
それをコンパイルするには、必要です
- 「./hello.agda」に保存します
- lib-0.6.tar.gz をダウンロードし、DIR などの場所に解凍します。
- cd DIR/ffi && cabal インストール
- agda -i DIR/src -i . -c こんにちは.agda
ghc-7.4.2 と cabal-1.16.0 を搭載した私の MacOSX Lion では、この例は問題なく動作します。サイズが 19.1M の「hello」という名前の実行可能プログラムを取得します。