Précédent   Forum du club des développeurs et IT Pro > Java > Général Java > Langage > Scala
Scala Forum d'entraide pour le langage Scala
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 11/06/2010, 13h44   #1
Seb_de_lille
Membre régulier
 
Inscription : mai 2006
Messages : 69
Détails du profil
Informations personnelles :
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : mai 2006
Messages : 69
Points : 76
Points : 76
Par défaut Question récursivité terminale sur JVM

Bonjour,

Je suis en train d'adapter d'anciennes sources scheme en scala. Je voudrais savoir si scala optimise la récursivité terminale?

Merci
Seb_de_lille est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/06/2010, 00h08   #2
gorgonite
Rédacteur/Modérateur

 
Avatar de gorgonite
 
Homme Nicolas Vallée
Ingénieur d'études
Inscription : décembre 2005
Messages : 9 966
Détails du profil
Informations personnelles :
Nom : Homme Nicolas Vallée
Âge : 28
Localisation : France

Informations professionnelles :
Activité : Ingénieur d'études
Secteur : Transports

Informations forums :
Inscription : décembre 2005
Messages : 9 966
Points : 18 163
Points : 18 163
à ma connaissance, la JVM ne le permet pas...
__________________
Evitez les MP pour les questions techniques... il y a des forums
Contributions sur DVP : Mes Tutos | Mon Blog
gorgonite est déconnecté   Envoyer un message privé Réponse avec citation 01
Vieux 12/06/2010, 00h23   #3
LLB
Membre Expert
 
Inscription : mars 2002
Messages : 962
Détails du profil
Informations forums :
Inscription : mars 2002
Messages : 962
Points : 1 149
Points : 1 149
Le compilateur Scala transforme la récursion simple en boucle, parce que la JVM ne fait pas cette optimisation. Pour les cas plus complexes (fonctions mutuellement récursives, appel terminal d'une fonction passée en arguments...), ça pose problème à ma connaissance.
LLB est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 13/06/2010, 09h47   #4
Seb_de_lille
Membre régulier
 
Inscription : mai 2006
Messages : 69
Détails du profil
Informations personnelles :
Localisation : France, Nord (Nord Pas de Calais)

Informations forums :
Inscription : mai 2006
Messages : 69
Points : 76
Points : 76
ok, merci.
Seb_de_lille est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2010, 04h52   #5
Gotoma
Invité de passage
 
Homme Aymen F
Inscription : juin 2010
Messages : 4
Détails du profil
Informations personnelles :
Nom : Homme Aymen F
Âge : 23
Localisation : Tunisie

Informations forums :
Inscription : juin 2010
Messages : 4
Points : 4
Points : 4
+1 pour LLB
Le compilateur optimise les fonctions récursives terminales sous quelques conditions (la redéfinition de la méthode doit être non possible (méthode private ou déclarée dans un singleton)...)
Scala 2.8 introduit l'annotation @tailrec qui lance une exception si la méthode est non optimisable.
Concernant les appels mutuels, renseigne toi sur le scala.util.control.TailCalls
Pour le reste, on doit attendre le JDK 7 (ou 8, ou 22 )
Gotoma est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 08h36.


 
 
 
 
Partenaires

Hébergement Web