Λrrow

5 views
Skip to first unread message

Laurent Caillette

unread,
Nov 30, 2018, 2:55:00 AM11/30/18
to tec...@googlegroups.com
"Λrrow"
(notez le lambda majuscule) est une bibliothèque de programmation fonctionnelle en Kotlin.

TLDR: ça pète sa mère (notez la rime riche).

Non sérieux ça donne envie. 

À l'origine je me demandais s'il y avait quelque chose pour faire des Lentilles (lenses) en Kotlin. Une lentille est une généralisation de l'accès à une propriété d'un objet immuable. En gros, si tu as une grappe d'objets immuables et que tu veux changer une valeur d'un objet au fond de la grappe, il faut faire des copies en cascade. Il y a moyen de rendre ça très concis en composant des Lentilles. C'est comme ça que je suis tombé sur la "Lens"
de Λrrow. Niveau de difficulté : débutant. Les trucs de niveau "avancé"... sont vraiment de niveau avancé.

La doc se lit comme un roman. C'est un point d'entrée fantastique pour les idiomes de la programmation fonctionnelle sans devoir se taper un truc effrayant comme Haskell. Par exemple il faut lire le tutoriel sur les Monades, il y a des perles du genre "La malédiction des Monades c'est qu'une fois que tu as compris comment ça fonctionnait tu deviens incapables de l'expliquer". 

Au cours de la lecture il y a moyen de découvrir des idiomes qu'on a patiemment mis au point sur son projet. Là c'est déjà tout fait. Encore une fois il n'y a rien de nouveau depuis Lisp (inventé il y a 50 ans déjà) et Haskell (apparu il y a 30 ans). Mais tout se retrouve à portée de main d'un langage multiplateforme statiquement typé avec un superbe environnement de développement. La courbe d'apprentissage de la programmation fonctionnelle s'en trouve grandement adoucie, et on garde la liberté de se rabattre sur une approche impérative si besoin.

Reply all
Reply to author
Forward
0 new messages