p
u
b
l
i
c
i
t
é
publicité
  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    mai 2006
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : mai 2006
    Messages : 70
    Points : 79
    Points
    79

    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

  2. #2
    Rédacteur/Modérateur

    Avatar de gorgonite
    Homme Profil pro
    Ingénieur d'études
    Inscrit en
    décembre 2005
    Messages
    10 264
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 31
    Localisation : France

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

    Informations forums :
    Inscription : décembre 2005
    Messages : 10 264
    Points : 17 724
    Points
    17 724

    Par défaut

    à 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

  3. #3
    LLB
    LLB est déconnecté
    Membre Expert
    Inscrit en
    mars 2002
    Messages
    963
    Détails du profil
    Informations forums :
    Inscription : mars 2002
    Messages : 963
    Points : 1 309
    Points
    1 309

    Par défaut

    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.

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    mai 2006
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France, Nord (Nord Pas de Calais)

    Informations forums :
    Inscription : mai 2006
    Messages : 70
    Points : 79
    Points
    79

    Par défaut

    ok, merci.

  5. #5
    Invité de passage
    Homme Profil pro
    Inscrit en
    juin 2010
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 26
    Localisation : Tunisie

    Informations forums :
    Inscription : juin 2010
    Messages : 4
    Points : 4
    Points
    4

    Par défaut

    +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 )

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Question d'algorithmique sur HeapSort
    Par didier2604 dans le forum Général Algorithmique
    Réponses: 2
    Dernier message: 02/09/2004, 11h17
  2. question de débutant sur les objets
    Par boucher_emilie dans le forum ASP
    Réponses: 3
    Dernier message: 06/08/2004, 10h51
  3. [Débutant]Quelques questions de principe sur l'API win32
    Par silver_dragoon dans le forum Windows
    Réponses: 4
    Dernier message: 19/03/2004, 18h38
  4. [LG]J'ai honte : question de cours sur les paramètres
    Par letibdesneiges dans le forum Langage
    Réponses: 14
    Dernier message: 17/01/2004, 13h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo