Я использую Agda уже 9 месяцев. Впервые я обнаружил, что хочу «запустить» (как исполняемый файл верхнего уровня) программу Agda, которая печатает строку. Назовите меня старомодным.Вывод программы программы Agda на консоль
Я могу написать программу, которая вычисляет строку и получить Agda, чтобы показать мне значение строки в интерактивном режиме (или Emacs). Но строка длинная и имеет встроенные новые строки. Я бы хотел, чтобы он действительно распечатался.
сравнения, в GHCi я могу сделать что-то вроде этого:
Prelude> putStrLn "hello, world!"
hello, world!
Но в интерактивном режиме Agda, я получаю это:
Main> putStrLn "hello, world!"
.IO.♯-15
('h' .Data.Colist.Colist.∷
.Data.Colist.♯-2 'h'
('e' .Data.List.List.∷
'l' .Data.List.List.∷
'l' .Data.List.List.∷
'o' .Data.List.List.∷
',' .Data.List.List.∷
' ' .Data.List.List.∷
'w' .Data.List.List.∷
'o' .Data.List.List.∷
'r' .Data.List.List.∷
'l' .Data.List.List.∷
'd' .Data.List.List.∷ '!' .Data.List.List.∷ .Data.List.List.[]))
>>
.IO.♯-16
('h' .Data.Colist.Colist.∷
.Data.Colist.♯-2 'h'
('e' .Data.List.List.∷
'l' .Data.List.List.∷
'l' .Data.List.List.∷
'o' .Data.List.List.∷
',' .Data.List.List.∷
' ' .Data.List.List.∷
'w' .Data.List.List.∷
'o' .Data.List.List.∷
'r' .Data.List.List.∷
'l' .Data.List.List.∷
'd' .Data.List.List.∷ '!' .Data.List.List.∷ .Data.List.List.[]))
Итак, как же я взять такую программу, как выполните и запустите его, чтобы я наблюдал эффекты, накопленные в значении IO
?
module Temp where
open import Data.Unit
open import IO
main : IO ⊤
main = putStrLn "Hello, world!"
Я заметил, что есть Haskell стиль run
функция, объявленная в модуле IO
Agda, но я не нашел способ сделать эту помощь.
Если затем вы хотите скомпилировать программу, убедитесь, что у вас есть 'Agda Пб-ffi' установлен (запустить' Кабал install' в 'ffi' директории Агда STDLIB). Затем вы можете использовать команду Emacs 'C-c C-x C-c' для собственно компиляции модуля, с которым вы работаете. – Vitus
Отлично, спасибо. (Все эти советы были важны :) Мне также нужно было перейти на v0.8.1 стандартной библиотеки, чтобы избежать [этой проблемы] (https://github.com/agda/agda-stdlib/commit/294d9d533a810957a9b0e7ff3d15e7269abb86da). – Roly
Btw, что случилось с каталогом «MAlonzo», который теперь появляется в моем проекте? – Roly