2010-07-04 4 views
1

y parvenir:modèle correspondant à reals (Standard ML)

fun test a 0.0 = "good" 
    | test a b = "bad"; 

provoque une erreur, mais si je change la 0.0, l'erreur disparaît. Cependant, j'ai besoin de faire correspondre 0.0 et je me demande si et comment cela peut être accompli.

Répondre

8

Vous pouvez simplement utiliser une instruction if au lieu de la correspondance de modèle. Notez que l'arithmétique à virgule flottante est sujette à des erreurs d'arrondi. Vous devez donc vérifier que la valeur absolue de b est inférieure à un delta plutôt que 0.0. Je suppose que c'est exactement la raison pour laquelle le modèle correspondant à des réels n'est pas autorisé.

Questions connexes