GNU/Linux >> Tutoriels Linux >  >> Linux

Premiers pas avec le langage de programmation Haskell

Haskell est un langage de programmation avancé, purement fonctionnel et à usage général. Ce guide explique comment installer Haskell et comment démarrer avec le langage de programmation Haskell dans les systèmes d'exploitation de type Unix. Haskell peut être installé de trois manières; installation manuelle, utilisation de la pile et utilisation de la plate-forme Haskell. L'installation de Haskell à l'aide de la pile est la méthode officiellement recommandée et la plus simple jusqu'à présent. Dans ce guide, nous verrons comment installer Haskell et comment démarrer avec le langage de programmation Haskell dans des systèmes de type Unix.

Installer la pile d'outils Haskell

Haskell Tool Stack est un programme multiplateforme pour la construction de projets Haskell. Avec Haskell Stack, nous obtenons un environnement de développement complet pour Haskell. En utilisant la pile d'outils Haskell, nous pouvons facilement installer les composants suivants :

  • Empiler  :Un générateur de projets pour les projets Haskell multi-packages,
  • GHC :Un compilateur et un interpréteur pour les programmes Haskell,
  • Aiglefin :Un générateur de documentation pour les packages Haskell,
  • Et des milliers de packages peuvent être installés à la demande.

Tout d'abord, installons la pile Haskell à l'aide de la commande :

$ wget -qO- https://get.haskellstack.org/ | sh

Ou,

$ curl -sSL https://get.haskellstack.org/ | sh

Les commandes ci-dessus téléchargeront la dernière version de Stack et l'installeront immédiatement.

Ces commandes sont les mêmes pour presque toutes les distributions Linux et FreeBSD. Cependant, la communauté Arch maintient une version officielle dans la [communauté] dépôt. Donc, si vous utilisez Arch Linux et/ou n'importe quel système basé sur Arch, exécutez simplement la commande suivante pour installer la dernière version stable de Stack.

$ sudo pacman -S stack

Une fois installé, exécutez la commande suivante pour définir votre variable d'environnement PATH afin d'inclure $HOME/.local/bin :

$ echo 'export PATH=$HOME/.local/bin:$PATH' >> ~/.bashrc

Met à jour les modifications apportées au fichier ~/.bashrc à l'aide de la commande :

$ source ~/.bashrc

Voyons la version installée de Stack :

$ stack --version
Version 1.6.1, Git revision f25811329bbc40b0c21053a8160c56f923e1201b (5435 commits) x86_64 hpack-0.20.0

Pour mettre à jour Stack à tout moment, exécutez simplement :

$ stack upgrade

Pour mettre à jour l'index du package, exécutez :

$ stack update

Nous avons installé Stack. Continuons et créons un nouveau projet.

Configuration d'un nouveau projet

Pour démarrer notre nouveau projet, nous avons besoin de certains fichiers tels que du code source haskell, un package.yaml, un stack.yaml et un fichier .cabal et quelques autres répertoires. Nous pouvons créer ces fichiers manuellement. Cependant, Haskell a de nombreux modèles prédéfinis. Ainsi, nous pouvons en utiliser un au lieu de les créer manuellement.

Pour répertorier tous les modèles disponibles, exécutez :

$ stack templates

Maintenant, je vais créer un nouveau projet appelé "ostechnix" et utilisez "new-template" . Pour ce faire, exécutez :

$ stack new ostechnix new-template

Exemple de sortie :

Downloading template "new-template" to create project "ostechnix" in ostechnix/ ...

The following parameters were needed by the template but not provided: author-email, author-name, category, copyright, github-username
You can provide them in /home/sk/.stack/config.yaml, like this:
templates:
 params:
 author-email: value
 author-name: value
 category: value
 copyright: value
 github-username: value
Or you can pass each one as parameters like this:
stack new ostechnix new-template -p "author-email:value" -p "author-name:value" -p "category:value" -p "copyright:value" -p "github-username:value"

Looking for .cabal or package.yaml files to use to init the project.
Using cabal packages:
- ostechnix/

Selecting the best among 12 snapshots...

Downloaded lts-10.0 build plan. 
Populated index cache. 
* Matches lts-10.0

Selected resolver: lts-10.0
Initialising configuration using resolver: lts-10.0
Total number of user packages considered: 1
Writing configuration to file: ostechnix/stack.yaml
All done.

Installer GHC

Allez dans le répertoire du projet nouvellement créé et lancez le téléchargement "stack setup" et installez le compilateur requis.

$ cd ostechnix/
$ stack setup

Cette commande installera le bon compilateur GHC dans votre nouveau projet Haskell. GHC sera installé dans un endroit isolé. Cela signifie que cela n'interférera avec aucune installation au niveau du système.

Veuillez noter que GHC sera installé dans le répertoire racine de votre pile globale. Donc, vous ne pouvez pas simplement l'appeler depuis votre shell en utilisant la commande ghc . Au lieu de cela, envisagez d'utiliser :stack ghc , pile ghci , pile runghc , ou stack exec . Pour plus d'informations sur les chemins, exécutez :

$ stack path

et..

$ stack exec env

Nous avons maintenant créé un nouveau projet et installé le bon compilateur pour notre projet. Il est temps de le construire.

Projet de construction

Pour générer le projet, exécutez :

$ stack build

Assurez-vous d'exécuter cette commande dans le répertoire de votre projet. Une fois la construction terminée, lancez l'exécutable à l'aide de la commande :

$ stack exec ostechnix-exe

Exemple de sortie :

someFunc

Veuillez noter que l'exécutable "ostechnix-exe" sera caché dans le fichier ./.stack-work répertoire dans le répertoire principal de votre projet.

Jouer avec Haskell

Ouvrez le compilateur ghci :

$ stack exec ghci

Ou,

$ stack exec -- ghci

Vous serez redirigé vers l'invite ghci.

GHCi, version 8.2.2: http://www.haskell.org/ghc/ :? for help
Prelude>

Comme tout le monde, commençons par "hello world!".

Prelude> "hello world!"
"hello world!"

Essayons quelques opérations arithmétiques.

Prelude> 14+90
104
Prelude> 14-90
-76
Prelude> 34/2
17.0

Quelques opérations complexes :

Prelude> (67*98) - 50 - (24-2)
6494

Découvrons quel nombre est le plus grand ou le plus petit :

Prelude> max 34 17
34
Prelude> min 45 98
45

Trouver le successeur :

Prelude> succ 89
90

Trouver les entrées données sont égales ou non :

Prelude> 10 == 10
True
Prelude> 10 == 20
False
Prelude> "ostechnix" == "ostechnix"
True
Prelude> "ostechnix" == "windows"
False

Il est également facile d'utiliser des valeurs booléennes comme ci-dessous :

Prelude> True && False
False
Prelude> True && True
True
Prelude> False || True
True
Prelude> False && False
False

Par défaut, le nom de l'invite est Prelude> . Vous pouvez changer cela en quelque chose d'autre, par exemple ghci>, en tapant :

:set prompt "ghci> "

Pour obtenir de l'aide, saisissez :

:?

Pour quitter, tapez :

:quit

Ou,

:q

Veuillez noter que nous n'avons pas besoin de créer le répertoire d'un projet. Nous pouvons commencer à travailler avec Stack en exécutant simplement "stack ghci" depuis le shell. Il téléchargera la bonne version de GHC et vous emmènera dans le prélude> invite.

Compiler et exécuter le code Haskell

Il est facile d'exécuter un code Haskell. Vérifiez l'exemple suivant.

Créez un fichier nommé "ostechnix.hs" avec le contenu suivant.

#!/usr/bin/env stack
-- stack --install-ghc runghc

main :: IO ()
main = putStrLn "Welcome To OSTechNix"

Vous pouvez maintenant exécuter ce programme à l'aide de la commande :

$ stack ostechnix.hs 
Welcome To OSTechNix

Voici un autre exemple.

Créez un programme haskell nommé myhaskell.hs avec le code suivant :

module Main where

main :: IO ()
main = putStrLn "Welcome To OSTechNix!"

Compilez-le ensuite à l'aide de la commande :

stack exec -- ghc myhaskell.hs -o test.hs

Exemple de sortie :

[1 of 1] Compiling Main ( myhaskell.hs, myhaskell.o )
Linking ostechnix.hs ...

Enfin, exécutez-le comme indiqué ci-dessous :

$ ./test.hs 
Welcome To OSTechNix!

Nous venons de couvrir les bases. Il y a beaucoup plus à apprendre ! Si vous souhaitez en savoir plus sur la programmation Haskell, consultez les ressources suivantes pour apprendre Haskell du niveau de base au niveau avancé.

  • Tutoriels Haskell
  • Apprenezvoushaskell
  • Haskell du monde réel
  • Essayez Haskell sur votre navigateur
  • Wiki officiel de Haskell

Linux
  1. Premiers pas avec Zsh

  2. Démarrer avec ls

  3. Premiers pas avec PostgreSQL sous Linux

  4. Premiers pas avec SSH sous Linux

  5. Guide pratique :Premiers pas avec Ansible

Premiers pas avec GitHub

Premiers pas avec le gestionnaire de paquets Nix

Premiers pas avec systemctl

Premiers pas avec cPanel

Premiers pas avec la commande Tar

Comment faire :Introduction à la programmation - Mise en route