Agda comme langage de programmation [fermé]
-
13-12-2019 - |
Question
J'ai trouvé de nombreuses informations utiles sur l'utilisation d'Agda comme système de preuve.Je n'ai trouvé pratiquement aucune information sur l'utilisation d'Agda pour écrire des programmes utilisables.Je ne trouve même pas d'exemple "hello world" compilant avec la version la plus récente d'Agda.
Donc,
Existe-t-il de bons tutoriels sur Agda en tant que langage de programmation ?
Existe-t-il d'autres langages de nature similaire (typés fonctionnels paresseux de manière dépendante) qui disposent d'une documentation plus mature pour les utiliser comme langage de programmation ?(J'ai trouvé des tonnes de documentation intéressante sur Coq, mais, encore une fois, pas de "Hello World").
La solution
Pour imprimer une chaîne dans Agda, vous avez besoin du bibliothèque std.Vous pouvez trouver un exemple de "hello world" ici pour Agda 2.2.6 et std lib 0.3.Cet exemple ne fonctionne pas pour Agda 2.3.0 et std lib 0.6 actuels.J'ai lu quelques sources dans std lib 0.6 et trouve que la suivante fonctionne :
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!")
Pour le compiler, il vous faut
- enregistrez-le dans "./hello.agda"
- téléchargez lib-0.6.tar.gz et décompressez-le quelque part, dites DIR
- cd DIR/ffi && installation cabale
- agda -i DIR/src -i .-c bonjour.agda
Sur mon MacOSX Lion avec ghc-7.4.2 et cabal-1.16.0, cet exemple fonctionne bien.J'obtiens un programme exécutable nommé "bonjour" d'une taille de 19,1 Mo.
Autres conseils
Ceci est naissant, mais un jour pourrait devenir une ressource utile :