2017-06-11 2 views
0

Je suis sur le point de terminer avec un script que j'écris mais j'ai une dernière instruction de condition à ajouter à ma fonction.Déclaration de condition multiple standard ML

fun whileloop (x:real,a:int,b:real) = 
    if (a<1) 
    then (x,a,b) 
    else whileloop(x+1.0,a-1,b-1.0) 

Ceci est ma boucle actuelle que j'ai créée. C'est fondamentalement accomplir tout ce dont j'ai besoin sous une exception. Je veux qu'il sorte de sa boucle une fois que la variable b atteint zéro [si cela se produit avant un zéro atteint). Je crois que Standard ML ne me laissera pas faire une déclaration de condition pour une vraie variable ... comme b < 1.0. juste pour vous donner une idée de ce que je suis en train d'accomplir ... Je veux le code suivant pour travailler ci-dessous:

fun whileloop (x:real,a:int,b:real) = 
    if (a<1 or b<1.0) 
    then (x,a,b) 
    else whileloop(x+1.0,a-1,b-1.0) 

Bien sûr, ce code ne fonctionne pas en raison de la syntaxe et une instruction de condition étant vérifiée par rapport un vrai nombre ... mais comment pourrais-je accomplir cette tâche tout en gardant mon squelette intact? Je veux simplement ajouter une autre instruction if condition au squelette existant. En C++, c'était une tâche assez simple.

+2

Mot clé incorrect. 'or' =>' orelse'. Avec ce changement, votre deuxième fonction fonctionne comme prévu. –

+0

Merci, je ne savais pas que j'étais si proche! – Busta

Répondre

1

Voici la réponse. Merci à John Coleman.

fun whileloop (x:real,a:int,b:real) = 
    if (a<1 orelse b<1.0) 
    then (x,a,b) 
    else whileloop(x+1.0,a-1,b-1.0)