7
私はHaskellが好きですが、Numクラスには不満です。 したがって、私は代数型のための独自の型クラス階層を作りたいと思っています。
PreludeをインポートしてNumとそれに関連するすべてをインポートしても、リテラル1にタイプtを持たせる唯一の方法は、tインスタンスNumを作ることです。
私は自分のfromIntegerクラスを作成し、完全に絵のうち、テンキーを残し、このHaskellのfromIntegerのオーバーライド
import Prelude hiding (everything having to do with Num)
import qualified Prelude (everything having to do with Num)
class (Eq fi) => FromInteger fi where
fromInteger :: Integral -> fi
foo :: (FromInteger fi) => fi -> String
foo 1 = "that was a one"
foo 0 = "that was a zero"
foo n = "that was neither zero nor one"
のようにして、私はブランドの新しいタイプのために適切fromIntegerを実装し、決してテンキーについては何も言わなければならないでしょうが大好きです。
パーサーに異なるfromIntegerメソッドを使用するように指示する方法はありますか?
ありがとうございます!
素晴らしいですね。 –
@JosephVictor [Numeric Prelude](http://www.haskell.org/haskellwiki/Numeric_Prelude)もご覧ください。あなたはそれがあなたが望むものを見つけるかもしれません。 – dave4420
それはもっとクールです(基本的に、私が書いているのはまさしく!) –