Précédent   Forum du club des développeurs et IT Pro > Autres langages > Langages fonctionnels > Scheme
Scheme Forum d'entraide sur la programmation en langage fonctionnel Scheme
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 04/02/2011, 05h42   #1
Ulrik18
Membre du Club
 
Inscription : janvier 2008
Messages : 41
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 41
Points : 40
Points : 40
Par défaut Corps d'une fonction avec plusieurs expressions

Bonjour,

Je débute sous scheme, et j'essaie de faire un petit programme (sous DrScheme) qui demande à l'utilisateur d'entrer 2 informations et produit un résultat après.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
(define (prixTTC6)
    ((display "Entrer le prix hors taxe : ")
     (let ((prixHT (read)))
       ((display "Entrer le taux de TVA : ")
        (let ((TVA (read)))
          ((display "Prix HT     : ")
           (display prixHT)
           (newline)
           (display "TVA         : ")
           (display TVA)
           (newline)
           (display "------------------------")
           (newline)
           (display "Prix TTC    : ")
           (display (* prixHT (+ 1 (/ TVA 100))))
           (newline)))))))
ça fonctionne, mais j'ai un message d'erreur que je ne comprends pas :

procedure application: expected procedure, given: (void); arguments were: (void) (void) (void) (void) (void) (void) (void) (void) (void) (void)

Je remarque qu'en fait, quand je fais une fonction qui contient 2 expressions indépendantes dans le corps j'ai la meme erreur et parfois ça marche meme pas!

Exemple :

Code :
1
2
3
4
5
6
> (define (test0)
    ((display "Bonjour ")
     (display "Le monde !")))
> (test0)
Bonjour Le monde !procedure application: expected procedure, given: (void); arguments were: (void)
Donc ma question est de savoir comment mettre plusieurs expressions indépendantes entre elles, dans le corps d'une fonction en scheme.

Merci d'avance.
Ulrik18 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 09h39   #2
Trap D
Rédacteur/Modérateur
 
Avatar de Trap D
 
Inscription : septembre 2003
Messages : 4 436
Détails du profil
Informations forums :
Inscription : septembre 2003
Messages : 4 436
Points : 5 300
Points : 5 300
Il faut mettre begin au debut
Code :
1
2
3
4
(define (test0)
    (begin
     (display "Bonjour ")
     (display "Le monde !")))
__________________
"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 : Intérieur avec jeune femme de Vilhelm Hammershoi
Trap D est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/02/2011, 10h02   #3
Ulrik18
Membre du Club
 
Inscription : janvier 2008
Messages : 41
Détails du profil
Informations forums :
Inscription : janvier 2008
Messages : 41
Points : 40
Points : 40
Merci beaucoup.

C'est ce qu'il me fallait ...
Ulrik18 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Cette discussion est résolue.
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 22h05.


 
 
 
 
Partenaires

Hébergement Web