Poster une réponse à un sujet: Scala, closures, scoping etc.
Attention, ce sujet est un sujet ancien (5088 jours sans réponse)
Gras [b]Texte[/b] Italique [i]Italique[/i] Souligné [u]Souligné[/u] Barré [strike]Barré[/strike]
Courriel [email=nobody@nobody.org]Nom[/email] Lien [url=http://www.website.com]Texte[/url] Ancre [anchor]Nom[/anchor] Image [img]http://www.website.com/image.jpg[/img] Insérer une image en provenance du site
Aligné à gauche [align=left]Texte[/align] Centré [align=center]Texte[/align] Aligné à droite [align=right]Texte[/align] Toute la largeur [align=justify]Texte[/text]
Couleur [color=#000000]Text[/color] Mise en forme [highlight=pascal]Texte[/highlight] Widgets Emoticons :code: [:code] Convertisseur HTML vers BBCode Convertisseur Word vers BBCode
Prévisualisation Vérification de l'orthographe

Copier Coller Couper Tout sélectionner
Tout effacer Insérer la date Insérer l'heure Insérer la date et heure Insérer votre IP
Liste [list=square][item]BlaBla[/item][/list] Liste Numérotée [list=decimal][item]BlaBla[/item][/list]
Citation [quote=name]Texte[/quote] Spoiler [spoiler]James est le meurtrier![/spoiler]
Tout en majuscules [uppercase]Texte[/uppercase] Tout en minuscules [lowercase]Texte[/lowercase] l33t [l33t]Je suis un nerd[/l33t] Texte en indice [sub]Texte[/sub] Texte en exposant [sup]Texte[/sup] Taille du texte [size=8]Texte[/size]
 
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
blietaer
Mais, bon, je ne veux pas rentrer dans un topic troll...

What else? :zoubi:
rfr


Si on peut plus s'amuser :oh:

Plus sérieusement, merci pour les invitations, ça doit être très intéressant mais un peu loin pour moi :wink:
Mango
*Phiew*

Mais je vous invite à passer à la séance du Brussels JUG (et le 3ème mi-temps après) et de discuter de cela de vive voix :smile:
zion

Bon, ben je sens que je vais vous laisser :salutation: ...


Oh benh non, continue, vous étiez drôle à lire :ddr555:
philfr
tout le monde est libre d'être un bon programmeur ou pas :tongue:

Sinon, je sais ce qu'est le lexical scoping, merci :oh:


Bon, ben je sens que je vais vous laisser :salutation: ...
gizmo
gizmo> ce que tu décris est du dynamic scoping, c'est primitif et pas gérable dans du code digne de ce nom.


Oui, c'est du dynamic scoping, et ne je ne vois pas en quoi c'est primitif et pas gerable. Dans ce cas, les mixin serait aussi a bannir si on suit se raisonnement. Pourtant c'est utilise avec succes dans pas mal de gros projets.

Sinon, je sais ce qu'est le lexical scoping, merci :oh:

rfr > ton exemple marche mais chacune de tes "closures" ont leur etat propre. Pas possible de maintenir de faire passer de l'information d'un appel a l'autre.

Le point n'est pas de savoir si tu vas savoir ou non emuler tel ou tel concept dans un langage turing complete, la reponse sera toujours oui. Le fait est que cela peut devenir ultra verbeux et peu lisible. Le fait est que de disposer de plus de concepts, ou mieux, du plusieurs paradigmes au sein d'un meme langage permet de choisir pour chacun des problemes la formulation qui sied le mieux.
L'OO n'est qu'une modelisation tres contrainte du monde. Se limiter a cela c'est tres reducteur.
rfr
Dr_Dan> ma tecnhnique anti-trollage est la suivante: je ne réagis qu'une fois à un nouvel argument. Une fois que ce que j'avais envie de dire est dit, je ne répond plus. Donc je crois ne plus troller (enfin, j'essaie de m'y tenir :ddr555: )

Mais dans le message de philfr, je note de nouveaux éléments intéressants donc je réponds :oh:

1) Je ne suis pas un bon programmer, je suis une personne pragmatique avec un petit cursus en économie. Depuis, Pareto est mon Maître spirituel.

2) Un jour un homme m'a dit, alors qu'on dissertait sur le fait de croire en Dieu ou pas:

"Tu sais, Einstein croyait en Dieu".

Je dois avouer ... que je n'ai toujours pas compris où il voulait en venir. Mais je crois aussi que depuis mes problèmes d'autoritarisme avec mon papounet, j'ai du mal avec les arguments d'autorités supérieures :ddr555:

Parce que bon, faut l'admettre, j'ai juste donné mon avis. Moi j'aime le Keep It Simple & Stupid, tout le monde est libre d'être un bon programmeur ou pas :tongue:
philfr
On peut aussi splitter le topic...

Mais plutôt que d'argumenter encore, je suggère à rfr de lire les 3 premières réponses au topic suivant:
Does Java need closures?

Et pour revenir à l'origine de la discussion, à mon avis, tout bon programmeur se doit d'apprendre régulièrement un nouveau langage. Car comme l'ont dit en chœur Lao-Tseu, Confucius, et Philippe Geluck (*), "Si tu n'as qu'un marteau pour seul outil, tout problème ressemblera à un clou".

(*)Mais je ne suis pas sûr de mes sources
Dr_Dan
Quel beau pourrissage de topic :ddr555:

Ca va se terminer en pugilat d'ingénieurs et Mango va se faire bannir du forum pour incitation à la haine :666:
:neowen:
Catégorie:  






Ada
CSS
Cobol
CPP
HTML
Fortran
Java
JavaScript
Pascal
Perl
PHP
Python
SQL
VB
XML
Anon URL
DailyMotion
eBay
Flickr
FLV
Google Video
Google Maps
Metacafe
MP3
SeeqPod
Veoh
Yahoo Video
YouTube
6px
8px
10px
12px
14px
16px
18px
Informaticien.be - © 2002-2024 AkretioSPRL  - Generated via Kelare
The Akretio Network: Akretio - Freedelity - KelCommerce - Votre publicité sur informaticien.be ?