Hatena::Grouphaskell

wanparkの日記

 | 

2007-11-28

数値リテラルと型変換は違う

Num クラスに属する型は数値リテラルを使える。

instance Num MyType where ...

fromLiteral :: MyType = 1      -- OK

だからといって、例えば Int から勝手に型を変換してくれるわけではない。Haskell には暗黙の型変換はない。

i :: Int = 1
fromFunction :: MyType = i     -- NG

nobsun に教えてもらいました。助かります。

nobsunnobsun2007/11/28 23:48Haskell には暗黙の型変換はありません。
length to の型は Int です。mdistance の型は Memo ListTable (String,String) Int
すなわち (String,String) -> State (ListTable (String,String) Int ですので、
return なしでは型があいません。

wanparkwanpark2007/11/29 03:19ありがとうございます。暗黙の型変換はそもそもないんですか。数値リテラルと型変換を混同していたようです。

 |