Journal Sortie de haskus-system 0.7

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
55
30
juin
2017

Bonjour,

Je n’ai encore jamais parlé ici du logiciel que je développe. Comme je viens d’annoncer la sortie de la version 0.7, c’est l’occasion. Ça parle de Linux et de Haskell.

Qu’est‐ce que c’est ?

L’idée de base consiste à prendre le noyau Linux seul (sans libc ni rien) et à refaire les couches d’abstraction au‐dessus en Haskell. Ça permet de faire de la programmation système tout en bénéficiant du système de types, de la mémoire transactionnelle, des green threads, etc.

(…)

Sortie du Glorious Haskell Compiler 7.8

Posté par  . Édité par Piezo, BAud, Bruno Michel, Benoît Sibaud, tuiu pol, Lucas, ZeroHeure et claudex. Modéré par tuiu pol. Licence CC By‑SA.
Étiquettes :
52
13
avr.
2014
Programmation fonctionnelle

Ghc, le Glorious Haskell Compiler est sorti le 9 avril 2014 en version 7.8.1. Il s'agit du compilateur le plus populaire pour le langage Haskell. Haskell est un langage de programmation purement fonctionnel, avec un système de types sophistiqué. C'est le principal langage généraliste à utiliser une stratégie d'évaluation non-stricte par défaut : la valeur d'une expression n'est calculée que si elle est nécessaire.

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 :

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

Sortie de GHC 8.2.1

46
7
août
2017
Programmation fonctionnelle

Une nouvelle version majeure du compilateur GHC pour Haskell est sortie.

GHC

Cette dépêche présente rapidement le langage Haskell, puis les nouveautés de la version 8.2.1 qui vient de sortir. En fin de dépêche, un exemple plus complet d’un code Haskell est présenté afin de motiver à l’usage de 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é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 (…)

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 (…)

Sortie du livre « Parallel and Concurrent Programming in Haskell »

Posté par  . Édité par tuiu pol, NeoX et patrick_g. Modéré par tuiu pol. Licence CC By‑SA.
Étiquettes :
42
25
juil.
2013
Doc

Le livre Parallel and Concurrent Programming in Haskell de Simon Marlow est enfin disponible !

Pour ceux qui ne le connaîtraient pas encore, le langage Haskell est un langage de programmation fonctionnel, fortement typé, paresseux et concis. Haskell est issu de l’initiative d’une communauté de chercheurs en langages fonctionnels qui ont décidé, à la fin des années 80, de mettre en commun leurs compétences en utilisant tous un seul langage, qui devrait rester libre. Depuis, le langage est en constante évolution, la dernière version stable est définie dans le rapport Haskell 2010, mais de multiples extensions existent dans le compilateur GHC, dont les plus courantes viendront s’ajouter à la prochaine version du langage.

Pour avoir une idée de sa syntaxe très particulière, voilà l’une des innombrables façons de définir la factorielle :

fac 0 = 1
fac n = n * fac (n-1)

En espérant que cela vous laisse sur votre faim, vous pourrez en apprendre plus dans les livres classiques Learn You a Haskell for Great Good qui est aussi librement accessible en version HTML, y compris en français, et le plus vieux, mais plus développé et appliqué, Real World Haskell, lui aussi accessible en ligne.

Journal Résolution naïve d'un jeu de société

Posté par  . Licence CC By‑SA.
41
20
juil.
2015

Bonjour nal,
Aujourd'hui je vais te parler de résolution naïve d'un problème combinatoire, en explorant un arbre. Le problème vient d'un jeu de société, et la résolution se fera en Haskell, illustrant des notions intéressantes : Anamorphisme et Deforestation_(computer_science).

Explication du jeu

Le jeu du Ricochet Robots est un jeu de société constitué d'une grille de jeu, comportant des cases, avec des murs certains côtés, et certaines cases ayant un symbole d'une certaine couleur.

Quatre Robots (chacun d'une (…)

Journal Le compilateur GHC Haskell en version 8.0.1

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
39
1
juin
2016
Ce journal a été promu en dépêche : Le compilateur GHC Haskell en version 8.0.1.

Le 21 mai 2016 est sortie la nouvelle version du compilateur Haskell GHC. Le mail d'annonce. notes de version.

GHC est le compilateur principal du langage Haskell, disponible sur plusieurs plate-forme et sous une (https://www.haskell.org/ghc/license](licence) libre qui proche de BSD.

Cette version succède à GHC 7.10.

Ce journal présente rapidement Haskell grâce à un exemple de code puis une sous-partie des nouveauté de GHC 8.0, le compilateur Haskell le plus utilisé. Comme on parle rarement d'Haskell (…)

Journal Haskell -- Évaluation paresseuse

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
37
3
mai
2016

Bonjour,

Je voulais vous parler d'évaluation paresseuse, en me servant comme support du langage Haskell.

L'évaluation paresseuse c'est juste le summum de la procrastination, reporter à demain (ou jamais) ce que tu n'as pas besoin de faire aujourd'hui. En haskell, une fonction n'est évaluée que si la valeur de retour est nécessaire pour évaluer immédiatement un autre résultat.

Je ne vous parlerai pas des avantages ou inconvénient de cela, mais je vais plutôt donner des exemples que (…)

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 (…)

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.

Sortie de GHC 8.0.2 et une petite histoire de typage statique

Posté par  (site web personnel) . Édité par Davy Defaud, rogo, palm123, Benoît Sibaud, ZeroHeure, Ontologia, Anthony Jaguenaud, Nils Ratusznik et Lucas. Modéré par ZeroHeure. Licence CC By‑SA.
Étiquettes :
33
23
jan.
2017
Programmation fonctionnelle

GHC, le compilateur Haskell le plus utilisé, est sorti en version 8.0.2 ; vous pouvez consulter l’annonce de la sortie datée du 11 janvier 2017, ainsi que les notes de version.

Il s’agit principalement d’une version de suivi qui corrige plus de deux cents bogues depuis la version 8.0 dont l’annonce de la sortie avait été faite sur LinuxFr.org. Donc, à ce titre, il n’y a pas grand chose à raconter. Le futur, c’est GHC 8.2 qui devrait arriver aux environs d’avril, si l’on en croit le planning. Celle‐ci devrait apporter principalement des améliorations de performance de l’environnement d’exécution parallèle et du ramasse‐miettes.

Comme on frôle la dépêche bookmark et que je tiens à mon karma, je vais vous présenter une fonctionnalité de Haskell, que l’on retrouve dans de nombreux langages. J’ai nommé les ADT, ou types algébriques de données.