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 :

[Débutant] Notation de fonction


Sujet :

Scheme

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 1
    Points : 1
    Points
    1
    Par défaut [Débutant] Notation de fonction
    Bonjour tout le monde
    Voila j'ai un problème avec une fonction très bête (enfin c'est moi qui suis bête dans l'histoire ):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    (define theLargest
      (lambda(x y)
        (cond
            ((> x  y) display "first_larger" )
            &#40;&#40;< x  y&#41; display "second_larger" &#41;
            &#40;else "equal"&#41;
         &#41;
       &#41;
     &#41;
    Voilà donc la fonction est censée juste marquer si c'est la première ou la seconde valeur qui est la plus grande. Mais quand dans DrScheme, je tape par example theLargest ( 3 5), il me renvoie :

    > theLargest (5 3)
    #<procedure:theLargest>
    . procedure application: expected procedure, given: 5; arguments were: 3
    >
    Je comprends vraiment ou pas ou est l'erreur, je suis un gros newbie

    Bonne soirée tout le monde

  2. #2
    Membre expérimenté
    Avatar de Juju_41
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Février 2003
    Messages
    974
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués

    Informations forums :
    Inscription : Février 2003
    Messages : 974
    Points : 1 557
    Points
    1 557
    Par défaut
    Bonjour

    Si mes souvenirs en Scheme sont bons, il faudrait que tu appelles ta fonction (lambda-expression pour être plus précis) comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    > &#40;theLargest 5 3&#41;
    PS : si tu as besoin d'aide en Scheme, n'hésites pas, je peux ressortir mes cours
    Avant de poster, merci de consulter les règles du forum

  3. #3
    Membre habitué
    Inscrit en
    Février 2006
    Messages
    310
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 310
    Points : 132
    Points
    132
    Par défaut
    Normalement tu devrais écrire pour être exact :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    (define theLargest
      (lambda(x y)
        (cond
            ((> x  y) (display "first_larger") )
            ((< x  y) (display "second_larger") )
            (else (display "equal"))
         )
       )
     )
    et appeler la fonction de la manière suivante :

  4. #4
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Quel est l'intérêt de la définition
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    (define theLargest
      (lambda(x y)
        (cond
            ((> x  y) (display "first_larger") )
            ((< x  y) (display "second_larger") )
            (else (display "equal"))
         )
       )
     )
    par rapport à celle-ci ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    (define (theLargest x y)
        (cond
            ((> x  y) (display "first_larger") )
            ((< x  y) (display "second_larger") )
            (else (display "equal"))
         )
    )
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  5. #5
    Membre à l'essai
    Inscrit en
    Avril 2006
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 19
    Points : 17
    Points
    17
    Par défaut
    De mes souvenirs: il n'y a pas "d'intérêt" prorpement dit à utiliser la 1ère ou 2ème définition: il s'agit simplement de notations équivalentes.

    Notation indiana (pour les puriste): avec la lambda.

    Notation MIT pour l'autre.

  6. #6
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Merci de ta réponse, elle confirme une réponse obtenue sur un autre forum
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

Discussions similaires

  1. [Débutant] Pourquoi ma fonction déconne ?
    Par clampin dans le forum C
    Réponses: 2
    Dernier message: 16/07/2006, 10h57
  2. Réponses: 11
    Dernier message: 27/04/2006, 15h03
  3. [débutant] bouton et fonction
    Par lietof dans le forum ASP
    Réponses: 2
    Dernier message: 21/04/2006, 09h04
  4. [Débutant] Pointeurs et fonctions
    Par vinzzzz dans le forum C
    Réponses: 5
    Dernier message: 15/01/2006, 15h25
  5. [Débutant] Aide utilisation fonctions :(
    Par trakiss dans le forum Débuter
    Réponses: 10
    Dernier message: 27/08/2004, 15h59

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