-
Haskell
Bienvenue sur la page consacrée au langage Haskell.
Vous y trouverez :
- Démarrer en haskell sous FreeBSD
- Premier programme : afficher du texte sur le terminal
- Comparatif de chaînes de caractères : motmagique -
Par majekla le 29 Avril 2024 à 10:53
Demander à l'utilisateur d'entrer un mot (sur la même ligne que la question - ce qui oblige à désactiver la mise en mémoire tampon), et comparer.
Si le mot entré est le bon, alors le programme répond BRAVO, sinon il répond ERREUR.- Créer le programme motmagique.hs
import System.IO
-- Demande à l'utilisateur d'entrer un mot
main :: IO ()
main = do
hSetBuffering stdout NoBuffering -- Désactive la mise en mémoire tampon pour la sortie standard
putStr "Entrez un mot : " -- Affiche l'invite sans retour à la ligne
mot <- getLine -- Lit la saisie de l'utilisateur
-- Vérifie si le mot est 'magique' ou non
if mot == "magique"
then putStrLn "BRAVO"
else putStrLn "ERREUR"- Compiler
ghc motmagique.hs
- Exécuter
./motmagique
votre commentaire -
Par majekla le 29 Avril 2024 à 10:42
Afficher le fameux "hello world" sur le terminal
- Créer le programme hello.hs
-- La fonction `main` est le point d'entrée du programme.
main :: IO ()
main = do
-- `putStrLn` est une fonction qui affiche une chaîne de caractères suivie d'un caractère de nouvelle ligne.
putStrLn "hello world"- Compiler
ghc hello.hs
- Compiler
./hello
votre commentaire -
Par majekla le 27 Avril 2024 à 19:43
L'idée est très simple : créer un mini programme qui affiche une fenêtre graphique avec un champs de texte et un bouton OK.
Lorsqu'on écrit le bon mot et qu'on clique sur le bouton OK (ou qu'on tape sur la touche 'entrée'), le programme affiche une nouvelle fenêtre avec le mot "BRAVO"
Si ce n'est pas le bon mot, le programme quitte !Pour afficher une fenêtre graphique, le plus simple est d'utiliser le framework gtk.
Avec Haskell, on va simplement installer la librairie gi-gtk.- Passer en root
su -
- Installer gtk
cabal install gtk
On peut à présent écrire notre programme :
(Ouvrez votre éditeur de code et copiez-collez)import Graphics.UI.Gtk
import Control.Monad.IO.Class (liftIO) -- Importation pour utiliser liftIO
main :: IO ()
main = do
initGUI
window <- windowNew
set window [windowTitle := "Devinez"]
-- Définir les dimensions de la fenêtre graphique
widgetSetSizeRequest window 200 100 -- Exemple : largeur 800px, hauteur 600px
-- Connecter le signal 'destroy' à l'action 'mainQuit' en utilisant 'liftIO'
on window destroyEvent $ liftIO mainQuit >> return False
-- Création du champ de texte
entry <- entryNew
set entry [entryText := ""]
-- Connecter le signal 'entryActivate' du champ de texte à la fonction onButtonClick
on entry entryActivate $ onButtonClick entry -- Gère la pression sur "Entrée"
-- Création du bouton
button <- buttonNewWithLabel "OK"
-- Connecter le signal 'buttonActivated' à la fonction 'onButtonClick'
on button buttonActivated $ onButtonClick entry
-- Création de la disposition (layout)
vbox <- vBoxNew False 5
containerAdd vbox entry
containerAdd vbox button
containerAdd window vbox
widgetShowAll window
mainGUI
-- Fonction appelée lorsque le bouton 'OK' est cliqué ou que la touche 'Entrée' est pressée
onButtonClick :: Entry -> IO ()
onButtonClick entry = do
text <- entryGetText entry -- Récupération du texte entré
if text == "magique"
then do
dialog <- messageDialogNew Nothing [] MessageInfo ButtonsOk "BRAVO"
dialogRun dialog
widgetDestroy dialog
else mainQuitEnregistrez-le sous "motmagique.hs"
Revenez sur votre terminal, déplacez-vous à l'endroit où est stocké votre programme puis compilez-le :# ghc --make motmagique.hs
Loaded package environment from /root/.ghc/x86_64-freebsd-9.6.4/environments/default
[1 of 2] Compiling Main ( motmagique.hs, motmagique.o )
[2 of 2] Linking motmagique
#Votre programme est à présent compilé et prêt à être exécuté.
Au passage, un nouveau fichier est apparu : motmagique
Pour le lancer :./motmagique
Voilà, votre premier programme en Haskell est terminé.
Vous pouvez désormais créer un programme avec des fenêtres !
votre commentaire -
Par majekla le 27 Avril 2024 à 19:32
C'est un démarrage pour ceux qui écrivent en Haskell sous FreeBSD, mais la démarche est globalement la même quelque soit le système (seules les commandes et les noms de paquets changent).
Il est préférable de disposer d'un environnement de bureau pour commencer
(Voir la rubrique FreeBSD pour cela)
- Passer en rootsu -
- Installer le compilateur GHC et cabal
pkg ins -y ghc hs-cabal-install
- Faire la MAJ du catalogue de cabal :
cabal update
- Installez un éditeur de code si vous n'en avez pas encore (vscode - lorsqu'il sera réparé, ou codeblocks par exemple) :
pkg ins -y codeblocks
On peut passer au premier programme !
votre commentaire
Suivre le flux RSS des articles de cette rubrique
Suivre le flux RSS des commentaires de cette rubrique