Premiers pas avec Haskell

Depuis le début de ma carrière en tant qu’ingénieur calcul, j’ai souvent été confrontés a des codes de calcul, des programmes de dépouillements écrits dans différents langages tels que FORTRAN, C#, C++ voir même VISUAL-BASIC.

Ces programmes, souvent buggués, mal documentés et dont les codes sources parfois mal maintenus, m’ont amenés à réfléchir sur la programmation informatique dans le domaine scientifique. Je me suis particulièrement intéressé à certains langages de programmation assez peu connus (car non enseignés dans les cursus techniques) et pourtant très intéressant pour le calcul scientifique : Les langages fonctionnels.

Parmi ces langages, on peut citer:

Pour diverses raisons, mon choix s’est porté sur : Haskell.

Haskell est un langage de programmation fonctionnel, multi-plateforme dont le développement à débuté vers 1990. Les principaux points forts de ce langage sont:

et il possède d’autres avantages:

Actuellement je programme quelques outils de dépouillement écrit en Haskell en combinaison avec GTK+ (Bibliothèque graphique) et Cairo (Bibliothèque de dessin) à des fins de test.

Voici quelques captures écrans de certains de ces programmes fonctionnant en ligne de commande et en mode fenêtré:

Vérification Boulonnerie Haskell Gtk
Programme de vérification de boulonnerie (CLI)

Vérification Boulonnerie Haskell Gtk
Programme de vérification de boulonnerie (interface GTK)

Maillage Élements finis Haskell Gtk
Programme de maillage (Interface GTK)

Maillage Élements finis Haskell CLI
Programme de maillage (CLI)

Maillage Élements finis Haskell CLI
Programme de maillage (CLI)

Maillage Élements finis Haskell CLI
Programme de maillage (CLI)

Haskell CmdArgs GTK Maillage Poutre
Programme de maillage (Interface GTK)

Haskell CmdArgs GTK Maillage Poutre
Programme de maillage (Interface GTK)

Haskell Gtk Profilé
Programme de maillage (Interface GTK)

Dynamique rotors Haskell Gtk
Programme de mise en données de rotors (interface GTK)

Haskell graphique graphviz RCCM
Programme de calcul RCC-M (Export Graphviz)

Et quelques extraits de codes sources montrant la syntaxe particulière et concise de Haskell :

Code source Haskell
Exemple de code source Haskell 1

Code source Haskell
Exemple de code source Haskell 2

Jusqu’à présent mon retour sur Haskell est très bon et je poursuis mon apprentissage sur ce langage. Je ne manquerais pas d’ici quelques mois de mettre en ligne certains de ces programmes accompagnés du code source commenté afin de pouvoir servir de base à d’autres personnes.

Si vous souhaitez en savoir plus sur Haskell ou débuter avec ce langage, je vous recommande les liens suivant: