Programmation  » Scala, closures, scoping etc.
Catégorie :  
Rappel du message précédent
Lien direct vers ce message Editer  Citer  Ajouter ce message en quote multiple  Supprimer
Scala, closures, scoping etc.
Publié le 09/12/2010 @ 09:20:30,
Par blietaer
Mais, bon, je ne veux pas rentrer dans un topic troll...

What else? :zoubi:
Et au besoin s'arrêter.


Lien direct vers ce message Editer  Citer  Ajouter ce message en quote multiple  Supprimer
Scala, closures, scoping etc.
Publié le 15/12/2010 @ 12:30:52,
Par 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
Répondre  - Catégorie :  
Informaticien.be  - © 2002-2020 Akretio SPRL  - Generated via Kelare
The Akretio Network: Akretio  - Freedelity  - KelCommerce  - Votre publicité sur informaticien.be ?