EN
PréludeChargé par défaut — aucun import nécessaire.

Exponentiation — un seul (^) dispatché sur le type de l'exposant

Synopsis
interface Pow a b where
(^) : a -> b -> a

a ^ b élève a à la puissance b (infixr 8, lie plus fort que *). Un unique opérateur dispatché sur le type de l'exposant, unifiant les ^/^^/** de Haskell :

  • a ^ Nat — multiplication répétée, pour tout Multiplicative a ;
  • a ^ Int — puissance entière, exposants négatifs via recip

(DivisionRing a) ;

  • Double ^ Double — puissance réelle.

Il n'y a délibérément pas de Int ^ Int : 3 ^ (-2) n'a pas de résultat Int, donc Int (qui n'est pas un DivisionRing) n'admet qu'un exposant Nat.

Instances : Double
funPow : (a -> a) -> Nat -> a -> a