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…
Étiquette : scala
Fonctionnel, Programmation
Les type classes Scala : exemple sur une sérialisation MongoDB (2/2)
by admin •
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…
Fonctionnel, Programmation
Les type classes Scala : exemple sur une sérialisation MongoDB (1/2)
by admin •
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…
Fonctionnel
Listes Scala: méthodes foldLeft et foldRight
by admin •
Dans ce billet je souhaite vous parler rapidement des méthodes foldLeft et foldRight de l’API des listes en Scala. foldLeft foldLeft est une méthode de la classe scala.collection.immutable.List et voici ce que le scaladoc nous en dit: “Applies a binary operator to a start value and all elements of this list, going left to right.”…
Fonctionnel
Impératif vs. fonctionnel ou le comment vs. le quoi
by admin •
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…