From: Nobuo Yamashita <nobsun / sampou.org>
Subject: Re: [haskell-jp:35] **, ^, ^^
Date: Thu, 27 Feb 2003 23:37:47 +0900 (JST)

> 各オペレータの型は
> 
> (^)  :: (Num a, Integral b) => a -> b -> a
> (^^) :: (Fractional a, Integral b) => a -> b -> a
> (**) :: (Fractional a) => a -> a -> a
> 
> で、文脈 context が違います。ポリモルフィックにする場合文脈が同じでないと
> 定義しようがありません。

というか、何故contextを違えて定義する必要があるのか
(実装上の要請ではなく、本質的にこれらの間に違いがあるのか)
という点に引っかかったものですから。

ただ、Prelude.hsやComplex.hsあたりを眺めてみると、なるほど
Num、Integral、Fractionalを厳密に使い分けてるようなんで、
使う方の意識としてこの3つは別物だとしてもおかしくはないかな、
と思い始めました。

--shiro


--
ML: haskell-jp / quickml.com
使い方: http://QuickML.com/