haskell-ja > Archives > 2015/08/27

2015/08/27 05:18:58 UTCうんの
#
すみません、わたし論点が理解できてないのかもしれません。
#
fromInteger 1 + 1.0 と書かなくても、1 + 1.0 でOKなのは、defaulting のおかげで曖昧性が解決されるから、だと思ってました。
#
これが間違っているのか、論点がずれてるのか…?
#
1 + 1.0 がエラーになった時代(?)のことを知らないから、話に入れていないのかもしれないです。
2015/08/27 05:39:50 UTCうんの
#
あら。
#
defaulting をころすと、fromInteger 1 + 1.0 もエラーになりますよね。
#
(というわけで、1 + 1.0 がエラーにならないための主役は defaulting じゃないのかなぁ)
#
ああ、すみません。fromInteger 1 + (1.0 :: Float) ならいいんだ。
#
(またわからなくなった)
#
あ。
#
Prelude> default ()
Prelude> 1 + (1.0 :: Float)
2.0
#
そうかー。
#
なっとくしました。ありがとうございます>整数リテラルにはfromInteger が暗黙に付くようになってからはエラーにはならない
#
もし、整数リテラルに fromInteger が暗黙のうちにはつかず、defaulting もなければ、
#
1 + 1.0 はエラーしてします。エラーを避けるには、fromInteger 1 + (1.0 :: Double) のように書く必要がある。
#
fromInteger は暗黙につくようになれば、こちらは明に書く必要がなくなり、
#
また、default (Integer, Double) が指定されていれば(いる)、(1.0 :: Double) の方も、単に 1.0 と書けばよい、
#
ですかね。
2015/08/27 05:59:03 UTCうんの
#
たびたびすみません、もうちょっと。
#
コンパイラが暗黙の fromHogehoge や defaulting をしてくれないとしたら、
2015/08/27 06:05:18 UTCうんの
#
1.0 (Fractional) から Double への暗黙の変換も書かないといけなくなるんですね。
#
(書いたことないので、なんて名前の関数かわからなかった…)
#
fromRational か。
2015/08/27 09:35:11 UTC[1..100]>>=pen
#
9月2日(水)大阪「Haskellによる並列・並行プログラミング読書会 #1」 http://connpass.com/event/19335/