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 :

Type et valeur de retour


Sujet :

Scheme

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    novembre 2012
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : novembre 2012
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Type et valeur de retour
    Bonjour,
    Je suis en train d'apprendre un langage informatique et je m'entraine sur des exercices. Là pour chacune des expressions Scheme suivantes je dois indiquer son type et sa valeur de retour. D'après ce que j'ai cru comprendre
    pour qu'une fonction soit de type alpha,
    -il faut que le nombre d'arguments de l'application soit égal au nombre de types des données de g (lorsque l'expression est une application elle est de la forme (g e1 e2)
    -il faut que le type de résultat de g(type qui est donné par la signature de g) soit alpha
    - si le type des données de g est x1*b1 (type qui est donné par la signature de g), il faut que l'expression e1( resp.e2) soit de type x1(respB1)
    il y a le type Nombre et le type Bool (prédicat).

    Donc voilà l'exo avec les expressions dont je dois dire les types et la valeur de retour

    1. (= 42 (+2(*8(-8 3))))
    2(or(= 3 3) (equal? "3" 3))
    3 (and (=3 3 ) (equal? "3" 3))
    4 (or (/84) (/4 0))
    5 (and (/8 4) (/4 0))

    pour la 1 ça donne (8-3)*8+2= 42
    donc ça donne comme valeur de retour 42.
    Le type est Nombre.

    Pour la 2 on a si e1 vérifie 3=3 alors l'expression est vraie et si c'est faux mais que e2 vérifie tout est vrai quand même car il y a or.
    Par contre il met equal en point d'interrogation et 3 entre guillemets, donc comme c'est un or, et qu'il y a plus de chance que ce soit vrai que faux qu'avec un and, je met #T et comme type bool.

    Pour la 3 c'est la même expression sauf que que c'est un and.
    Je crois avoir compris equal? il nous propose une égalité qu'on doit vérifier. Seulement je ne sais pas ce que donne "3" 3 est-ce que "3"=3?
    si ce n'est pas le cas alors je met #F et de type bool.

    4. On dit si e1vérifie 2 (8/4=2) alors c'est vrai. Or on a 4/0 donc #F et de type bool.
    5. C'est pareil #F et de type bool.

    Maintenant est-ce que vous êtes d'accord avec mon interprétation?
    Sinon pourriez vous me donner des explications supplémentaires j'ai toujours du mal à différencier les variables, des arguments, des types.

    En vous remerciant d'avance

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

    Informations forums :
    Inscription : septembre 2003
    Messages : 4 889
    Points : 6 329
    Points
    6 329
    Par défaut
    Il y a des problèmes dans tes exos, as-tu bien respecté les espaces ?
    Tu proposes
    (= 42 (+2(*8(-8 3)))) mais à mon avis c'est
    (= 42 (+ 2(* 8(- 8 3))))
    et alors le résultat est booléen à true puisque l'évaluation de (+ 2(* 8(- 8 3))) est 42 et que tu fais (= 42 42)
    2 et 3 d'accord
    4 : pour l'expression (or (/ 8 4) (/ 4 0)) (j'ai corrigé les espaces) le résultat est un nombre 2 (evaluation de (/ 8 4)) et (/ 4 0) n'est pas évalué.
    5 : (and (/ 8 4) (/ 4 0)) la erreur car le deuxième argument est évalué et donc division par 0.
    "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. $.post et type des valeurs retour
    Par Indiana Fighter dans le forum jQuery
    Réponses: 3
    Dernier message: 16/12/2010, 20h37
  2. Réponses: 10
    Dernier message: 13/04/2009, 13h02
  3. Réponses: 1
    Dernier message: 16/03/2007, 11h46
  4. [Base de Registre] Nouveaux type de valeur !?
    Par Lung dans le forum Langage
    Réponses: 4
    Dernier message: 07/04/2004, 10h22
  5. Pourquoi une seule valeur de retour pour les fonctions ?
    Par Bruno75 dans le forum Langages de programmation
    Réponses: 33
    Dernier message: 18/01/2004, 13h58

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