IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Scheme Discussion :

Notation préfixée à infixée


Sujet :

Scheme

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 18
    Points : 18
    Points
    18
    Par défaut Notation préfixée à infixée
    Bonjour,

    j'ai un programme à réaliser en scheme qui consiste à passer d'une notation préfixée en une notation infixée, par exemple ;

    (+ (* 1 2) 3 (- 4 5)) >>> ((1 * 2 ) + 3 + (4 - 5))

    et je ne sais pas quoi utiliser comme fonctions définies, un peu désorienté.

  2. #2
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Un petit foldl ? (J'ai l'impression de répéter ça souvent ces derniers temps...)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    (define (prefix2infix xs)
      (if (not (pair? xs))
          xs
          (case (length xs)
            [(0) '()]
            [(1) (prefix2infix xs)]
            [(2) (prefix2infix (cadr xs))]
            [else (let ([op (list (car xs))] 
                        [start (list (prefix2infix (cadr xs)))] 
                        [rest (cddr xs)])
                    (foldl 
                     (lambda (x inf) (append inf op 
                                             (list (prefix2infix x)))) 
                     start rest)
                    )]
            )
          )
      )
    (Ok, le foldl est pas si petit...)

    --
    Jedaï

  3. #3
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Points : 2 467
    Points
    2 467
    Par défaut
    Citation Envoyé par Jedai Voir le message
    Un petit foldl ?[...]
    --
    Jedaï
    C'est une question de devoir. Tu n'aurais pas du lui donner une solution tout de suite.

  4. #4
    Membre éclairé
    Avatar de GnuVince
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2004
    Messages
    679
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2004
    Messages : 679
    Points : 803
    Points
    803
    Par défaut
    Citation Envoyé par Garulfo Voir le message
    C'est une question de devoir. Tu n'aurais pas du lui donner une solution tout de suite.
    Tu penses qu'il va comprendre?

  5. #5
    Inactif  
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 958
    Détails du profil
    Informations personnelles :
    Âge : 58
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Points : 2 467
    Points
    2 467
    Par défaut
    Citation Envoyé par GnuVince Voir le message
    Tu penses qu'il va comprendre?
    Pas sur non.
    Mais jmi risquerait de mettre ça dans son devoir quand même.
    Ça serait dommage.


    Pour jmi, comme pour toutes les autres questions, je te proposerais de commencer par une description de ce que tu veux faire et un algo.

    Je comprends bien ton exemple, mais un exemple ce n'est qu'une description particulière. Il faut que tu en tires la généralité.

    J'ai jamais donné ça en exercice mais c'est intelligent

  6. #6
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Citation Envoyé par Garulfo Voir le message
    C'est une question de devoir. Tu n'aurais pas du lui donner une solution tout de suite.
    Tu as raison bien sûr mais je me suis laissé emporter...
    Le problème était intéressant et la solution un peu plus compliquée que je ne le pensais (il y a sans doute plus simple d'ailleurs), reste à voir ce que jmi va en faire.

    --
    Jedaï

Discussions similaires

  1. notation infixée et postfixée
    Par ettar dans le forum C
    Réponses: 1
    Dernier message: 07/07/2014, 02h57
  2. Algorithme Notation préfixé -> notation infixée d'une formule
    Par acacia dans le forum Algorithmes et structures de données
    Réponses: 23
    Dernier message: 30/04/2008, 22h22
  3. [Flash MX 2004]Notation par point
    Par willowII dans le forum Flash
    Réponses: 4
    Dernier message: 28/04/2004, 14h23
  4. [DOM] ajouter le préfixe <?xml-stylesheet>
    Par phoebe dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 29/03/2004, 12h37
  5. Préfixe REP
    Par M.Dlb dans le forum Assembleur
    Réponses: 3
    Dernier message: 02/08/2002, 11h08

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