トップページ > プログラム > 2014年10月26日 > u4tbdCa8

書き込み順位&時間帯一覧

44 位/216 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000000000000000001102



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
関数型プログラミング言語Haskell Part26
推薦図書/必読書のためのスレッド 74

書き込みレス一覧

関数型プログラミング言語Haskell Part26
295 :デフォルトの名無しさん[sage]:2014/10/26(日) 21:46:53.03 ID:u4tbdCa8
FunctionalDependencies オプションについて質問です。

下記のプログラムで class Cook に型依存性(と言うのかな?) a -> b を指定する必要性が分かりません。

------------------------------
data Nasu = Nasu Int

class Cook a b where
 cook :: a -> b

instance Cook Nasu Nasu where
 cook (Nasu n) = Nasu (n+1)

main :: IO ()
main = do
 let a = Nasu 1
 let b = cook (cook a) :: Nasu
 return ()
------------------------------

cook (cook a) :: Nasu を cook ((cook a) :: Nasu) :: Nasu に変えればオプション不要でコンパイルが通ります。

ですが、このプログラムなら (cook x) :: Nasu の x は Nasu 以外にありえないので、
現状のままでも cook (cook a) :: Nasu の内側の cook a は Nasu だと推論されても良さそうなんですが・・・

デフォルトでは、cook ::a -> b の a から b も、逆に b から a も推論しないのでしょうか?
推薦図書/必読書のためのスレッド 74
406 :デフォルトの名無しさん[sage]:2014/10/26(日) 22:25:40.80 ID:u4tbdCa8
>>403
我慢できないのなら無理に我慢しようとするな、としか言いようが無いのだが。

なんて言ってほしくてレスしたのか意図が読めん。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。