scala
-
Les fonctions et les fonctions d’ordre supérieur
La programmation fonctionnelle a de nombreux attraits dont le traitement réservé aux fonctions. Dans beaucoup de langages de programmation les fonctions ont un statut particulier. Par exemple en Java il est possible de créer un entier, de l’assigner à une variable ou de le passer comme argument à une autre fonction mais on ne peut [...]
-
Il y a peut être une option pour continuer ¡¿ (réflexion sur la programmation par continuation)
L’une des difficultés principales lorsque l’on aborde la programmation par événement est qu’il faut changer sa manière de penser: l’appel d’une méthode ne renvoie pas de résultat. Lorsque le résultat est disponible, celui-ci est à son tour publié sur un bus ou fourni à une fonction de rappel passée en paramètre lors de l’appel. C’est [...]
-
La gestion des erreurs avec scala.util.Try (2/2)
Suite de l’épisode précédent. Après la découverte des bases de la gestion des erreurs avec scala.util.Try, nous allons, dans cette deuxième partie, explorer des fonctionnalités plus avancées. Nous utiliserons un exemple très simple pour illustrer nos propos : lancer un serveur sur un numéro de port fourni par l’utilisateur. Cette tâche se décompose en deux [...]
-
La gestion des erreurs avec scala.util.Try (1/2)
Scala 2.10 introduit une nouvelle structure monadique Try. Cette classe est particulièrement adaptée à la représentation d’un traitement pouvant réussir en renvoyant une valeur ou échouer en lançant une exception. Commerçons par un exemple simple : parser un numéro de port renseigné par un utilisateur sous forme d’une chaîne de caractères. 1 2 val input: String [...]
-
Les type classes Scala : exemple sur une sérialisation MongoDB (2/2)
Dans la première partie, nous avons introduit les types classes et avons créé une API pour travailler avec MongoDB en Scala. Dans cette partie, nous allons voir comment améliorer cette API grâce aux paramètres implicites. Scala donne la possibilité d’annoter les paramètres d’une méthode comme étant des paramètres “implicites”. Un paramètre implicite d’une méthode est un [...]
-
Les type classes Scala : exemple sur une sérialisation MongoDB (1/2)
S’il y a un pattern que vous ne pouvez pas rater dans les librairies écrites en Scala ou dans les articles de blog consacrés à ce langage ce sont bien les “type classes”. Une type classe offre un moyen de définir un comportement commun à plusieurs types. Elle définit une interface commune, mais pas au [...]
-
Impératif vs. fonctionnel ou le comment vs. le quoi
Mon intérêt pour Scala m’a conduit à m’intéresser à la programmation fonctionnelle. J’ai eu une expérience plutôt avec des langages privilégiant le style impératif. Scala permettant à la fois les paradigmes fonctionnel et impératif, je me suis donc posé des questions sur les différences fondamentales entre ces deux paradigmes. Je souhaite, dans ce billet, partager [...]