GHC 9.2

Posté par  (site web personnel) . Édité par palm123, Ysabeau 🧶 🧦, tisaac et theojouedubanjo. Modéré par patrick_g. Licence CC By‑SA.
Étiquettes :
34
4
nov.
2021
Programmation fonctionnelle

GHC 9.2 est sorti le 29 octobre 2021. Cette nouvelle version du principal compilateur pour Haskell apporte son lot de nouveautés détaillées dans la suite de cette dépêche.

Comme à notre habitude, nous terminerons la dépêche par un exemple de projet en Haskell.

Nous rappelons qu’Haskell est un langage de programmation qui se démarque par son design. En effet, fort d’un typage statique avec inférence (i.e. il n’est pas nécessaire d’écrire les types pour que le langage les vérifie), son évaluation paresseuse (le code n’est exécuté que quand c’est strictement nécessaire) et de sa séparation des effets, Haskell est un langage ovni dans le marché qu’il influence depuis de nombreuses années.

GHC 8.8, 8.10 et 9.0

33
10
mar.
2021
Programmation fonctionnelle

GHC (Glasgow Haskell Compiler) 8.8 est sorti le 26 août 2019. GHC 8.10 est sorti le 24 mars 2020. GHC 9.0 vient de sortir, le 4 février 2021.

C’est donc l’occasion de revenir sur les changements de ces versions du principal compilateur pour le langage fonctionnel Haskell. Avec 3 versions majeures sur plus de 2 ans, tout ne peut pas rentrer dans une dépêche. De plus, beaucoup de détails ne sont pas forcément passionnants ou adaptés à un public non expert en compilation, c’est pourquoi cette dépêche se focalise sur les exemples que nous avons jugés intéressants, autant pour les nouveautés que pour l’opportunité de présenter des points saillants du langage.

Journal Retour d'expérience sur les langages de programmation

Posté par  (site web personnel) . Licence CC By‑SA.
42
13
nov.
2020

Ces derniers temps, j'apprends moins de langages nouveaux qu'il y a quelques années. Du coup, je me suis dit que c'était une occasion de faire le tour sur l'essentiel des langages que j'ai testés.

Dans ce journal, je fais un peu dans le classique du ceci ou cela m'a plu dans tel langage, telle autre chose ne m'a pas plu. Le tout est très subjectif, biaisé et reflète fortement les trucs que j'ai voulu faire avec ces langages. Mais bon (…)

Journal Configurer VSCode pour Haskell (Debian/Nix/NixOS)

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
14
25
déc.
2019

Comme beaucoup de langages de programmation, Haskell n’a pas d’environnement de développement officiel ni même consensuel. Cependant, il existe différentes configurations classiques : Emacs + Intero/Dante, Vim + Ghcid, IntelliJ-Haskell…

Depuis quelque temps, l’éditeur de texte Visual Studio Code propose un environnement intéressant pour développer en Haskell, notamment couplé à HIE et à Stack. Cette configuration apporte les principales fonctionnalités d’un IDE : coloration syntaxique, navigation de code, compilation, documentation, auto‑complétion… Cependant, l’installation de ces outils n’est pas complètement triviale (…)

Journal Comprendre Go en 5 minutes, en Haskell

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
18
24
déc.
2019

D'après leur réputation, Go et Haskell sont des langages de programmation assez opposés : Go privilégie la simplicité, Haskell l'expressivité. Cependant ces deux langages ne sont pas si éloignés que cela. Plus exactement, les concepts de base de Go se retrouvent, de façon assez ressemblante, en Haskell.

Ce journal reprend, en Haskell, les exemples de code en Go de l'article Comprendre Go en 5 minutes. L'objectif n'est pas de présenter exhaustivement Go ou Haskell, ni de démontrer que l'un (…)

Journal Un serveur de webcam en 35 lignes de Haskell

Posté par  (site web personnel) . Licence CC By‑SA.
23
14
déc.
2018

Pour mettre en place une webcam, on connecte une caméra à un ordinateur sur lequel on fait tourner un serveur retransmettant les images. Celles-ci sont alors accessibles via des requêtes au serveur.

Cet article présente comment implémenter un serveur de webcam en Haskell. Le serveur proposé transmet l'image courante en réponse aux requêtes HTTP. En parallèle (via un thread léger), il met également à jour l'image courante à partir du flux vidéo.

code source du projet

Capture vidéo

Tout d'abord (…)

GHC 8.4 et 8.6

32
25
sept.
2018
Programmation fonctionnelle

GHC, le compilateur Haskell est sorti en version 8.6.1 le 22 septembre 2018.
Cette dépêche détaille les nouveautés. De plus, nous n’avions pas fait de dépêche pour la version 8.4.1 du 8 mars 2018, ainsi que pour les versions 8.4.2 et 8.4.3 ayant suivi en avril et mai ; cette dépêche tente de combler ce vide.

Les versions 8.4.2 et 8.4.3 étant principalement des versions mineures consacrées aux corrections de bogues critiques, celles‐ci ne seront pas traitées dans cette dépêche.

Comme d’habitude pour les dépêches concernant les sorties de GHC, nous reviendrons sur les nouveautés de ces versions pour conclure par un petit exemple de Haskell pour vous donner envie d’utiliser ce langage.

Développement Web frontend en Haskell, Elm et Purescript

Posté par  (site web personnel) . Édité par Benoît Sibaud, Davy Defaud et palm123. Modéré par Benoît Sibaud. Licence CC By‑SA.
46
19
août
2018
Programmation fonctionnelle

Actuellement, le développement Web côté client (frontend) est très souvent réalisé en JavaScript ou dans des langages dérivés comme TypeScript. Il existe cependant d’autres outils intéressants, basés sur des langages de programmation fonctionnelle, qui permettent notamment d’éviter de nombreuses erreurs lors de l’exécution sur le navigateur.

L’objectif de cette dépêche est de rappeler quelques généralités sur le développement Web frontend, et de présenter les outils Elm, Purescript, Miso et Reflex, à partir d’un exemple d’application (galerie d’images fournie via une API Web).

Attention : ceci n’est pas une étude rigoureuse et avancée mais juste un petit retour de petite expérience.

Voir également le dépôt de code de l’exemple et une présentation en vidéo.

Journal le style fonctionnel en vidéo (nix, nixos, haskell...), la suite...

Posté par  (site web personnel) . Licence CC By‑SA.
14
29
juin
2018

Bon bah, j'ai continué les vidéos du journal précédent (https://linuxfr.org/users/nokomprendo-3/journaux/le-style-fonctionnel-en-videos-nix-nixos-haskell).

Au passage, je suis passé sur framagit et j'ai ajouté un formatage plus propre des articles via hakyll (https://nokomprendo.frama.io/tuto_fonctionnel).

Les nouveaux sujets :
- Personnaliser une image Docker de NixOS pour de l'intégration continue
- Déployer un blog avec Hakyll, Gitlab-ci, Nix
- Nix, programmation et loi de Murphy
- Créer et partager des paquets Nix
- Archlinux vs Voidlinux
- Migrer un système NixOS (de (…)

Journal Le mode histoire de Nikki And The Robots libéré

Posté par  (site web personnel) . Licence CC By‑SA.
35
19
avr.
2018

Bonjour,

L’équipe derrière Nikki and the robots a enfin pris le temps de rendre le mode histoire disponible sous licence libre avec le reste du jeu. La décision avait déjà été plus ou moins prise depuis longtemps (le système d’achat du mode histoire étant de toutes façons hors ligne depuis un moment) mais ça n’avait pas été fait jusque maintenant.

Un membre de l’équipe a aussi pris le temps d’adapter le système de build et de me guider pour faire (…)

Journal TapTempo en brainfuck

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
48
3
mar.
2018

TapTempo est disponible en version BrainFuck

C'est un portage partiel (faut pas pousser ;), donc :

  • Pas d'options
  • Pas de localisation
  • Pas de remise à zéro des samples
  • Que deux samples
  • N'importe quelle touche fonctionne (Pas seulement <Return>)

Mais c'est tout de même une version Brainfuck qui fait son boulot :

[-]
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.[-]
[-]
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.[-]
[-]
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.[-]
[-]
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.[-]
[-]
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.[-]
[-]
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.[-]
[-]
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.[-]
[-] ++++++++++++++++++++++++++++++++.[-] [-]
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.[-]
[-]
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.[-]
[-]
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.[-]
[-] ++++++++++++++++++++++++++++++++.[-] [-]
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.[-]
[-]
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++.[-]
[-]
(…)

Journal Portage de TapTempo en Haskell

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
21
1
mar.
2018

Bonjour à tous,

Suite aux portages de TapTempo en divers langages (Rust, Ada, Javascript, Perl (5.10), Python (2.7), bash), il fallait une version Haskell de TapTempo.

J'ai essayé de respecter scrupuleusement ce qui est décrit dans le journal d'introduction de TapTempo de mfz. Toute différence serait un bug, j'attends vos rapport de bug sur GitHub.

Le répertoire src est composé des fichiers suivants, chacun ayant sa petite particularité Haskell que je détaille dans la suite :

Journal le "style fonctionnel" en vidéos (Nix, NixOS, Haskell)

Posté par  (site web personnel) . Licence CC By‑SA.
43
8
jan.
2018

Salut

Si ça intéresse quelqu'un, j'ai fait quelques vidéos sans prétention sur l'utilisation de Nix/NixOS et la programmation en Haskell. Pour l'instant, il n'y en a qu'une dizaine; je pense en faire d'autres plus tard mais… plus tard.

Les vidéos : https://www.youtube.com/watch?v=i6s-G_Hh3s4&list=PLe8vnuC2T7iGE3w_d-MCHw5mLzRAMiCM9

Les résumés + codes : https://github.com/nokomprendo/tuto_fonctionnel

Les sujets des vidéos :
01 : Installation de NixOS
02 : Gestion de paquets avec Nix
03 : Installation de Nix sur Debian
04 : Utilisation des canaux avec Nix/NixOS
05 (…)