Dupont Corentin wrote:
J'ai d'autres questions bêtes:
- je n'ai pas trouvé d'opérateur / comme ceci: (/) :: a -> a -> Maybe a
Pourtant il me semble que ce serait une bonne utilisation de Maybe pour la division par zero?
Ta question n'est nullement bête! La division par zéro n'est pas indéfinie en Haskell (IEEE), mais plutôt infinie:
Prelude> 3/0 Infinity
La plupart du temps ça correspond à ce que tu veux (bien que mathématiquement soupçonneux): Prelude> exp (-1/0) 0.0 Prelude> atan (1/0) 1.5707963267948966 Prelude> atan (-1/0) -1.5707963267948966 Le type Double contient l'infini comme valeur tout à fait respectable (au moins pour les architectures qui supportent le format IEEE), comme prevue dans: class (RealFrac a, Floating a) => RealFloat a where floatRadix :: a -> Integer floatDigits :: a -> Int floatRange :: a -> (Int, Int) decodeFloat :: a -> (Integer, Int) encodeFloat :: Integer -> Int -> a exponent :: a -> Int significand :: a -> a scaleFloat :: Int -> a -> a isNaN :: a -> Bool isInfinite :: a -> Bool isDenormalized :: a -> Bool isNegativeZero :: a -> Bool isIEEE :: a -> Bool atan2 :: a -> a -> a Dan