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 :

Erreur : reference to undefined identifier: ’


Sujet :

Scheme

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 17
    Points : 7
    Points
    7
    Par défaut Erreur : reference to undefined identifier: ’
    Bonjour tout le monde, je viens de commencer en Scheme et je voudrais developper un systéme expert. Seulement j'ai un petit probléme et j'aurais besoin de votre aide.
    Voici le petit systeme expert que j'ai programmé et l'erreur qui s'en est suivi.
    Cet erreur apparait aprés la saisie des faits (ex : jean porte une cravate).
    Cette erreur provoque l'arret du programme !
    Merci d'avance pour votre précieuse aide.
    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    (define-struct regle (conditions consequence))
    
    (define (si . a) a)
    (define (alors a) a)
    ;; Liste de règles
    (define base-de-regles
    (list
    (make-regle (si ’(jean porte une cravate))
    (alors ’(jean est fonctionnaire)))
    (make-regle (si ’(jean porte une blouse))
    (alors ’(jean est chirugien)))
    (make-regle (si ’(jean porte un maillot)
    ’(jean travaille dans une piscine))
    (alors ’(jean est sauveteur)))
    )
    ;; Liste de faits
    (define base-de-faits '())
    
    
    ;; On rentre les faits, puis on lance le programme
    (define (main)
    (display "Entrez vos faits ")
    (newline)
    (set! base-de-faits (read))
    (inferer))
    ;; On parcours l’ensemble des règles.Si un règle a été appliquée, on relance le parcours.
    (define (inferer)
    (if (parcourir-regles base-de-regles) (inferer) ’()))
    ;; On teste chaque règle.
    (define (parcourir-regles regles)
    (if (null? regles) #f
    (or (teste-regle (car regles))
    (parcourir-regles (cdr regles)))))
    ;; On verifie si la règle peut être appliquée.
    
    (define (teste-regle regle)
    (and (sont-verifiees (regle-conditions regle))
    (ajoute-aux-faits (regle-consequence regle))))
    (define (sont-verifiees conditions)
    (if (null? conditions)
    #t
    (and (est-verifiee (car conditions) base-de-faits)
    (sont-verifiees (cdr conditions)))))
    (define (est-verifiee condition faits)
    (if (null? faits)
    #f
    (or (equal? (car faits) condition)
    (est-verifiee condition (cdr faits)))))
    ;; ajoute-aux-faits regarde si la conséquence à ajouter
    ;; aux faits est déjà dans ceux-ci. Si oui, elle renvoit faux.
    ;; Sinon, elle affiche la conséquence, l’ajoute aux faits et
    ;; renvoie vrai.
    (define (ajoute-aux-faits consequence)
    (if (member consequence base-de-faits)
    #f
    (begin
    (set! base-de-faits (cons consequence base-de-faits))
    (write consequence)
    (newline)
    #t
    )))

    L'erreur : reference to undefined identifier: ’

  2. #2
    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
    Assure toi d'utiliser une apostrophe "normale" pour faire un quote (') pas un accent (´) ou une apostrophe stylisée.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par GnuVince Voir le message
    Assure toi d'utiliser une apostrophe "normale" pour faire un quote (') pas un accent (´) ou une apostrophe stylisée.
    Effectivement !!! je savais que c'etait quelque chose de débile. merci !
    Mais maintenant que c'est corrigé, il m'affiche un autre message d'erreur :
    car: expects argument of type <pair>; given cet

  4. #4
    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 acer_intel Voir le message
    Effectivement !!! je savais que c'etait quelque chose de débile. merci !
    Mais maintenant que c'est corrigé, il m'affiche un autre message d'erreur :
    car: expects argument of type <pair>; given cet
    Test au fur et à mesure ton code et tu repèreras d'où ça vient.
    De plus : indentes ton code ! Je ne lirais pas du code non indenté.
    Tu es sous DrScheme je suppose alors utilises l'indentation automatique.

    Finalement ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    (if (null? conditions)
         #t
         (and (est-verifiee (car conditions) base-de-faits)
         (sont-verifiees (cdr conditions)))))
    c'est très moche (quelque soit le langage).
    Ton if devrait être un and (et pas de #t bien entendu)

    Quand tu auras trouvé où est situé l'erreur, essayes d'analyser pourquoi elle est là, et reviens nous alors si tu n'as pas trouvé avec les détails de ta réflexions bien sûr.

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par Garulfo Voir le message
    Test au fur et à mesure ton code et tu repèreras d'où ça vient.
    De plus : indentes ton code ! Je ne lirais pas du code non indenté.
    Tu es sous DrScheme je suppose alors utilises l'indentation automatique.
    T'as raison, j'ai oublié d'identer mon code. Je travaille avec DrScheme version 3.722.
    Je vais essayer ce que tu m'a dis et je reviens vous voir soit pour expliquer mon erreur soit, pour que vous m'aidiez de nouveau.
    Encore merci !

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    J'arrive toujours pas à localiser l'erreur . Sans doute, parceque je debute à peine en scheme.
    Si quelqu'un pouvait m'aider encore, ca sera super sympa. entretemps, je vais continuer mon analyse.
    Encore merci les gars !!!

  7. #7
    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 acer_intel Voir le message
    J'arrive toujours pas à localiser l'erreur . Sans doute, parceque je debute à peine en scheme.
    Si quelqu'un pouvait m'aider encore, ca sera super sympa. entretemps, je vais continuer mon analyse.
    Encore merci les gars !!!
    Quand je parle de localiser je parle de tester un à un tes énoncés dans l'interpréteur jusqu'à trouver à quel moment l'erreur apparaît.
    Dans Dr Scheme tu as aussi l'aide visuel (les flèches qui montrent la trace de l'exception). Mais même là, il faut parfois mettre les mains dans le cambouis.
    Donc exécutes dans l'ordre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    > (define-struct regle (conditions consequence))
    >(define (si . a) a)
    > (define (alors a) a)
    etc. jusqu'à voir l'erreur apparaître. Tu auras le moment où l'erreur survient. Parce que le message dit que tu as mal utilisé un car.
    Mais il serait bon que tu recherches lequel.

  8. #8
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2008
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par Garulfo Voir le message
    Quand je parle de localiser je parle de tester un à un tes énoncés dans l'interpréteur jusqu'à trouver à quel moment l'erreur apparaît.
    Dans Dr Scheme tu as aussi l'aide visuel (les flèches qui montrent la trace de l'exception). Mais même là, il faut parfois mettre les mains dans le cambouis.
    Donc exécutes dans l'ordre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    > (define-struct regle (conditions consequence))
    >(define (si . a) a)
    > (define (alors a) a)
    etc. jusqu'à voir l'erreur apparaître. Tu auras le moment où l'erreur survient. Parce que le message dit que tu as mal utilisé un car.
    Mais il serait bon que tu recherches lequel.
    J'ai bien fais ce que t'as dit et en executant une par une, il ny'a aucun message d'erreur. Bizarre !!!
    De plus, comme t'as dis, l'erreur semble venir d'une mal utilisation de 'car'. Mais je bloque dessus. Ca me semble juste et toutes mes recherches sont pour l'instant infructueuses pr determiner la cause de cette erreur.

  9. #9
    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 acer_intel Voir le message
    J'ai bien fais ce que t'as dit et en executant une par une, il ny'a aucun message d'erreur. Bizarre !!!
    De plus, comme t'as dis, l'erreur semble venir d'une mal utilisation de 'car'. Mais je bloque dessus. Ca me semble juste et toutes mes recherches sont pour l'instant infructueuses pr determiner la cause de cette erreur.
    Si ça marche un par un alors ton programme n'a pas d'erreur de syntaxe a priori. Maintenant il faut que tu exécutes tes énoncés de manière individuel. Puis que tu les combines.

    Quand tu as l'erreur, tu remontes les flèches pour voir la source de ton erreur.

    Dans ton cas, tu as fais appel à un car sur un objet qui n'est pas une liste.

    Tu as du remarquer que ton message change en fonction de ce que tu rentres non ?

Discussions similaires

  1. Réponses: 3
    Dernier message: 21/06/2014, 14h22
  2. Erreur de type undefined reference to `_imp_*'
    Par Agoudard dans le forum C++
    Réponses: 3
    Dernier message: 20/09/2012, 10h54
  3. Réponses: 2
    Dernier message: 21/08/2011, 12h25
  4. Erreur de compilation "undefined reference"
    Par aljekeny dans le forum Débuter
    Réponses: 14
    Dernier message: 06/01/2009, 11h14
  5. Erreur au link undefined reference to wxOnAssert
    Par Muetdhiver dans le forum wxWidgets
    Réponses: 3
    Dernier message: 16/06/2008, 09h59

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