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 :

Autolisp et fonction while


Sujet :

Lisp

  1. #1
    Nouveau Candidat au Club
    Inscrit en
    Juin 2008
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Autolisp et fonction while
    Bonjour à tous,

    je me suis mis hier à Autolisp. J'ai jusqu'à présent réussi à m'en sortir tout seul, mais me voilà bloqué sur la fonction while.
    Voici mon programme:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    (while (<= I 10)
    	(if 
    	  (= (substr (cdr tmp) 1 1) "A")
    	  (setq I (+ I 1))
    	  (command (alert "aa"))
    	)
    )
    j'obtiens systematiquement un message d'erreur:
    Erreur: Erreur pour le type d'argument: stringp 11

    A noter que le 11 devient 21 si je change en
    (while (<= I 20)

    cela veut dire que mon I n'est pas bien défini.
    Je l'ai défini plus haut de la sorte:
    (setq tmp (assoc "TITLE" lattstr) I 1)

    Merci pour votre aide!!!!!

  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
    Commençons par le début
    Ceci permettra d'avoir du code lisible.

    Ensuite, en Lisp on évite les whiles. Pourquoi avoir choisi ce dernier au lieu d'une forme récursive ?

    Finalement, on manque d'éléments. Ton I n'est pas utilisé dans le morceau de code que tu donnes pour autre chose que compter. Le 11 ne devrait pas générer d'erreur. Il est probable que ce soit plutôt le code qui suit qui provoque un problème. Car 11 est la valeur de I après la boucle. Le fait d'utiliser un while ne t'aide probablement pas.

Discussions similaires

  1. Fonction while qui ne s'arrête pas
    Par dubis dans le forum Langage
    Réponses: 19
    Dernier message: 27/02/2010, 19h39
  2. Fonction "while"
    Par dharth dans le forum Débuter
    Réponses: 2
    Dernier message: 25/06/2009, 20h51
  3. [MySQL] conflit entre deux fonction while
    Par guillaumeIOB dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 04/12/2006, 13h56
  4. [MySQL] Conflit entre deux fonction WHILE
    Par guillaumeIOB dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 28/11/2006, 19h15
  5. Fonction While {} qui ne fonctionne pas
    Par zoom61 dans le forum Langage
    Réponses: 3
    Dernier message: 15/11/2006, 13h17

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