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 :

question sur la fonction eval


Sujet :

Lisp

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Février 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 141
    Points : 160
    Points
    160
    Par défaut question sur la fonction eval
    Bonjour,
    en lisant la discussion du 15/03/2008 introduite par pepsister il est dit à un moment que: (Garulfo)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    (symbolp 'a) 
    T
    (symbolp +)
    NIL
    (symbolp 1) 
    NIL
    Mais pour moi, avec clisp ou sbcl, juste après avoir lancé l'interprèteur j'obtiens:
    puis si je recommence j'otiens bien:
    il se passe la même chose avec - et / mais avec * j'obtiens toujours:
    +, -, / sont parfois des symboles et * est toujours un symbole.

    C'est bizarre ?

  2. #2
    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
    Oui effectivement...
    Et j'ai vérifié par curiosité c'est effectivement le cas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    [1]> (symbolp +)
    T
    [2]> (symbolp +)
    NIL
    [3]> (symbolp +)
    NIL
    [4]> (symbolp +)
    NIL
    etc.
    En fait c'est juste la première fois que j'ai un T

    « - » n'est jamais un symbole...
    « * » est toujours un symbole...

    C'est n'importe quoi
    J'essaierais de trouver pourquoi

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Février 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 141
    Points : 160
    Points
    160
    Par défaut
    Citation Envoyé par Garulfo Voir le message
    Oui effectivement...
    Et j'ai vérifié par curiosité c'est effectivement le cas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    [1]> (symbolp +)
    T
    [2]> (symbolp +)
    NIL
    [3]> (symbolp +)
    NIL
    [4]> (symbolp +)
    NIL
    etc.
    En fait c'est juste la première fois que j'ai un T

    « - » n'est jamais un symbole...
    « * » est toujours un symbole...

    C'est n'importe quoi
    J'essaierais de trouver pourquoi
    ben la réponse est ici mais je ne l'ai pas trouvée tout seul ;-))
    http://www.lispworks.com/documentati...Body/25_aa.htm
    Si je comprends bien *, **, ***, +, ++, +++ ...... sont des variables gérées par lisp.
    Merci.

  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
    C'est effectivement dû au fait que + et * sont définis pour être des variables ET des fonctions -_- C'est pas malin selon moi menfinbon.

    La variable + récupère la dernière formule évaluée et la réévalue.
    La variable * récupère la dernière valeur primaire affichée et la renvoie.

  5. #5
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 101
    Points : 5 849
    Points
    5 849
    Par défaut
    Citation Envoyé par rutabagas Voir le message
    ben la réponse est ici mais je ne l'ai pas trouvée tout seul ;-))
    http://www.lispworks.com/documentati...Body/25_aa.htm
    Si je comprends bien *, **, ***, +, ++, +++ ...... sont des variables gérées par lisp.
    Merci.
    Effectivement, "+" est une variable dont le contenu dépend de ce que l'on a fait précédemment, de même que le test sur la symbolité de son contenu.

    Le test qui répondrait à la demande serait:

    qui dit que le symbole "+" est bien un symbole.

    Elémentaire...

    )jack(

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Février 2007
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 141
    Points : 160
    Points
    160
    Par défaut
    Citation Envoyé par jack-ft Voir le message
    Effectivement, "+" est une variable dont le contenu dépend de ce que l'on a fait précédemment, de même que le test sur la symbolité de son contenu.

    Le test qui répondrait à la demande serait:

    qui dit que le symbole "+" est bien un symbole.

    Elémentaire...

    )jack(
    ceux qui lisent la discussion risque de ne pas s'y retrouver:
    mon problème c'était de savoir pourquoi :
    au démarrage de lisp (à la première action) et pourquoi après :
    et la réponse est que lisp au démarrage met la symbol-value du
    symbol '+ à nil et que
    PS
    elementaire ne signifie pas toujours simple ... il est très facile de trouver des exemples en mathématique

Discussions similaires

  1. [Dates] Question sur les fonctions Date
    Par cerede2000 dans le forum Langage
    Réponses: 2
    Dernier message: 28/10/2006, 17h26
  2. Question sur la fonction recv
    Par Mr_Chut dans le forum Réseau
    Réponses: 14
    Dernier message: 15/09/2006, 12h43
  3. Question sur les fonctions "send()" et "recv(
    Par damien99 dans le forum MFC
    Réponses: 6
    Dernier message: 10/02/2006, 20h47
  4. Réponses: 1
    Dernier message: 08/02/2006, 11h18
  5. Réponses: 2
    Dernier message: 21/12/2005, 09h39

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