Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 2 sur 2
  1. #1
    Membre actif
    Inscrit en
    janvier 2006
    Messages
    423
    Détails du profil
    Informations personnelles :
    Âge : 29

    Informations forums :
    Inscription : janvier 2006
    Messages : 423
    Points : 171
    Points
    171

    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 :
    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 :
    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
    Mon CV en ligne ICI

  2. #2
    Membre actif
    Inscrit en
    janvier 2006
    Messages
    423
    Détails du profil
    Informations personnelles :
    Âge : 29

    Informations forums :
    Inscription : janvier 2006
    Messages : 423
    Points : 171
    Points
    171

    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 :
    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))))))
    Mon CV en ligne ICI

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

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •