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

Lisp Discussion :

comment savoir si une liste est evaluable?


Sujet :

Lisp

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 302
    Par défaut comment savoir si une liste est evaluable?
    Bonjour,

    je rencontre un petit problème avec une fonction de simplification. Je dois pouvoir simplifier toutes fonctions c'est à dire (+ 0 x)=x mais aussi les évaluer si possible (+ 3 4)=7 et si rien est possible l'afficher comme tel (* x x)=(* x x)
    j'ai pensé à un algorithme du style
    je teste d'abord si mon premier element est un + ensuite je teste si le premier element egale 0 j'affiche le deuxième je traite le cas de la commutativité cela ca va. mais je sais pas comment faire ou plutot si c'est possible de faire:

    si la liste est evaluable alors l'évaluer sinon l'afficher comme tel.
    comment savoir si elle est evaluable ou pas pour la simplifier au max.

    merci de me donner un petit coup de pouce

  2. #2
    Expert confirmé
    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
    Par défaut
    Facile : une liste est évaluable si tout ses éléments sont évaluables.

    --
    Jedaï

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 302
    Par défaut
    Peux tu être plus explicite
    si je ne vois pas comment on fait pour tester si une liste est évaluable c'est que je ne sais pas comment faire pour tester si un élément est évaluable
    en effet je voudrais faire si le premier element est evaluable passer au deuxieme et ainsi de suite jusqu'à ce que la liste soit fini et si tous ces elements sont evaluables alors evaluer la liste sinon l'afficher telle qu'elle est.
    Mais au niveau programmation je ne vois vraiment pas comment faire

    Puis je avoir un peu plus d'explication merci


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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Par défaut
    si je ne vois pas comment on fait pour tester si une liste est évaluable c'est que je ne sais pas comment faire pour tester si un élément est évaluable
    Bin alors pourquoi n'as tu pas demandé ça ?

    Dans ce cas, ne te préoccupe pas de comment tester si une liste d'élément est évaluable. C'est extrêmement simple dès que tu sais comment évaluer un terme comme l'a indiqué Jedaï.

    Cherches d'abord comment déterminer si un élément est évaluable.
    1) Commence par expliquer en bon français ce que tu appelles évaluable.
    2) Ensuite, donnes une idée de l'algorithme que tu pourrais en tirer (de tes phrases en français)

    Et là on verra où tu as besoin d'aide.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    302
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 302
    Par défaut
    pour moi evaluable c'est quand on peut calculer l'expression
    Ma fonction ne recevra que des listes de la forme (+ 3 4) ou (+ 2 x)
    quand il recoit la premiere je veux que la fonction le calcule et quand il voit la deuxième qu'il la réaffiche tel quel.
    je ne sais pas comment traduire en lisp si l'element est evaluable après le reste je pense que c'est bon mais ca je ne vois vraiment pas
    merci de votre aide

  6. #6
    Expert confirmé
    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
    Par défaut
    Et bien dirais-tu que "+" est évaluable ? Que "2" est évaluable ? Que "x" est évaluable ?
    Une fois que tu as établis ces cas de bases, tu peux simplement utiliser "une liste est évaluable si tous ses composants sont évaluables" récursivement.

    --
    Jedaï

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

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 958
    Par défaut
    Citation Envoyé par pepsister Voir le message
    [...]je ne sais pas comment traduire en lisp si l'element est evaluable [...]
    Laisses tomber pour l'instant la traduction en Lisp, c'est un détail une fois que tu as l'algorithme correct.

    Comme te l'as fait remarquer Jedaï il faut d'abord que tu définisses qu'est ce que tu veux dire par évaluable pour chaque élément de tes listes. Tu auras après une définition applicable il suffira de la traduire.

Discussions similaires

  1. Comment savoir si une liste est vide?
    Par erfindel dans le forum Access
    Réponses: 2
    Dernier message: 14/02/2007, 15h20
  2. Comment savoir si une connexion est deja ouverte?
    Par ghor_bey dans le forum Web & réseau
    Réponses: 3
    Dernier message: 29/07/2005, 15h17
  3. Réponses: 6
    Dernier message: 01/07/2005, 15h06
  4. Comment savoir si une variable est initialisée ?
    Par nabix dans le forum Général Python
    Réponses: 8
    Dernier message: 10/03/2005, 15h12
  5. Comment savoir qu'une fonction est standard ?
    Par D[r]eadLock dans le forum C
    Réponses: 5
    Dernier message: 24/03/2003, 14h42

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