A voir également:
- Erreur en caml ou quoi
- Erreur upes 1025 - Forum Téléviseurs
- Erreur t32 ✓ - Forum Livebox
- Erreur 3000 france tv - Forum Lecteurs et supports vidéo
- Une erreur s'est produite instagram ✓ - Forum Instagram
- Erreur 0x80070643 - Accueil - Windows
1 réponse
Ton code serait correct, cependant il y a quelques contraintes...
Dans tes instructions if () à l'intérieur des parenthèses ça doit être une valeur booléenne
Remarque, les parenthèses sont facultatives.
Le gros piège c'est que le if renvoie toujours un résultat qui doit donc avoir un type.
On devra donc avoir le même type à la fin du then et à la fin du else (le type unit, si il n'y a pas de else)
Ce type commun sera le type du if
Je simplifie ton code :
instuction4 et instruction5 doivent être de même type
Or comme le if condition1 n'a pas de else, il est de type unit, donc le then doit aussi être unit
Or la dernière instruction du then c'est le if condition3, donc instruction4 et instruction5 devront être unit
Voici un exemple correct :
C'est pour ça que absX renvoie un réél, en l'occurrence la valeur absolue du réél x
Dans tes instructions if () à l'intérieur des parenthèses ça doit être une valeur booléenne
Remarque, les parenthèses sont facultatives.
Le gros piège c'est que le if renvoie toujours un résultat qui doit donc avoir un type.
On devra donc avoir le même type à la fin du then et à la fin du else (le type unit, si il n'y a pas de else)
Ce type commun sera le type du if
Je simplifie ton code :
if condition1 then begin
instruction2;
if condition3 then instruction4
else instruction5;
end;;Ici condition1 et condition3 sont des booléens (ils valent true ou false)
instuction4 et instruction5 doivent être de même type
Or comme le if condition1 n'a pas de else, il est de type unit, donc le then doit aussi être unit
Or la dernière instruction du then c'est le if condition3, donc instruction4 et instruction5 devront être unit
Voici un exemple correct :
let abs x = if x<0. then -.x else x;;x est un réél, le then et le else renvoie des rééls, donc le résultat du if sera réél
C'est pour ça que absX renvoie un réél, en l'occurrence la valeur absolue du réél x