Supprimer un message
Raison de suppression du message (envoyée à l'utilisateur)

Voulez vous réellement supprimer ce message?  


sb
Ce code me rappelle quelque chose du genre:

</snip>

Verbeux, certes ... mais clean et sans obligation d'évaluation 'at runtime'.

Vive l'orienté objet ...


Oui et l'OO est encore meilleur quand il embrasse des techniques de programmation fonctionnelle comme le GC (LISP) et le polymorphisme paramétrique (ML). L'étape suivante est de passer à une syntaxe sympa pour les closures (reportées au JDK 8 d'après les dernières nouvelles) et l'inférence de type (ML) en Java. Sans ça le mieux qu'on puisse faire ressemblerait à http://functionaljava.org/ en passant par des classes anonymes pour les closures mais tu atteins vite les limites de lisibilité quand les types deviennent plus sophistiqués.

Scala est une plateforme idéale pour les curieux qui désirent apprendre comment s'appuyer sur ces techniques pour faire de la programmation déclarative p. ex. en partant de bases propres. Voici un petit exemple de session avec l'interpréteur Scala.


scala> List(1, 2) map (_ + 1)
res0: List[Int] = List(2, 3)

scala> List("World", "Universe") map ("Hello " + _)
res1: List[java.lang.String] = List(Hello World, Hello Universe)

scala> def hello(s:Any) = "Hello " + s.toString
hello: (s: String)java.lang.String

scala> List("World", "Universe") map hello
res2: List[java.lang.String] = List(Hello World, Hello Universe)

scala> List(1, 2, 3, 4) filter (_ % 2 == 0) map hello
res3: List[java.lang.String] = List(Hello 2, Hello 4)


Pour ceux que ça intéresse, il y a une présentation sur Scala demain soir à l'ULB.
http://www.brussels-jug.be/wiki/doku.php?id=events:2010_12_session2.

Sebastien
Informaticien.be - © 2002-2024 AkretioSPRL  - Generated via Kelare
The Akretio Network: Akretio - Freedelity - KelCommerce - Votre publicité sur informaticien.be ?