Вызов функции в Агде

У меня есть этот код, который в основном представляет собой hello world, с функцией добавления, он компилирует и запускает и выводит "Hello, world 5!":

open import Common.IO

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

-- how to call a function in agda i.e. '_+_(5, 4)' to get '9' 

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


main = putStrLn "Hello, world 5!"

Как мне позвонить _+_ функционировать? Моя цель позвонить _+_ с двумя аргументами вроде _+_(3,4) и получить программу для вывода семи.

Моя интуиция говорит, чтобы заменить линию " main = putStrLn "Hello, world 5!""с чем-то вроде"putStrLn _+_(3,4)'

Я новичок в Agda, и в Интернете не так много примеров рабочего кода. Кто-нибудь может заставить эту функцию работать, приводя практический пример кода?

Спасибо!

1 ответ

Решение
open import Common.IO
open import Data.Nat using (ℕ; zero; suc)
open import Data.Integer using (ℤ; +_; show)
open import Data.String using (_++_)

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

main = putStrLn ("Hello, world " ++ show (+ (3 + 4)) ++ "!")
Другие вопросы по тегам