• Haskell

  • 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
  • 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
  • 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 mainQuit

    Enregistrez-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
  • 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 root

    su -

    - 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