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 :

Fonction récursive [Débutant(e)]


Sujet :

Scheme

  1. #1
    Membre actif Avatar de dragonfly
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 464
    Points : 240
    Points
    240
    Par défaut Fonction récursive
    Bonjour à tous,

    je débute sous Scheme, j'ai trouvé un tutorial qui me permet d'avancer mais je bloque sur un probléme à priori tout simple.
    Je créé un vecteur et j'essaye juste d'afficher en fonction du nombre d'elements. Voici le code et l'erreur

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    (define table (make-vector 3 (make-vector 3 #\space)))
    
    (define aff
      (lambda (vect cpt)
        (display (vector (vector-length vect) cpt) )
        (if (>= cpt (vector-length vect) )
           (display (quote stop))
           (
           (display "| | | |")
           (newline)
           (aff vect (+ cpt 1))))))
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     (aff table 0)
    #(3 0)| | | |
    #(3 1)| | | |
    #(3 2)| | | |
    #(3 3)stop. . application: not a procedure;
     expected a procedure that can be applied to arguments
      given: #<void>
      arguments...:
       #<void>
       #<void>
    L'affichage se fait bien , il m'affiche bien le stop mais je ne comprend pas pourquoi le programme ne s'arrête pas et me lance une erreur.
    A moins que l'erreur soit du à autre chose qui m'échappe...

    Par avance merci

  2. #2
    Membre actif Avatar de dragonfly
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    464
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 464
    Points : 240
    Points
    240
    Par défaut
    Au temps pour moi,

    je viens de découvrir que si il y'a plusieurs instructions dans un if, il faut mettre un begin.

    Probléme résolu.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    (define aff
      (lambda (vect cpt)
        (display (vector (vector-length vect) cpt) )
        (if (>= cpt (vector-length vect) )
           (display (quote stop))
           (begin
             (display (quote OK))
             (newline)
             (aff vect (+ cpt 1))))))

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. fonction récursive: erreur
    Par calla29 dans le forum Débuter
    Réponses: 3
    Dernier message: 16/05/2006, 11h51
  2. [VB6] XML, fonction récursive de recherche
    Par kboo dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 24/04/2006, 21h27
  3. [XSLT] fonction récursive à N niveaux
    Par Mike35 dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 10/03/2006, 12h30
  4. Fonction récursive renvoi sur page d'erreur
    Par peck dans le forum Langage
    Réponses: 1
    Dernier message: 23/12/2005, 10h08
  5. Problème de fonction récursive avec un TcxDBTreeList
    Par isachat666 dans le forum Composants VCL
    Réponses: 1
    Dernier message: 05/12/2005, 13h12

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