予想通り、これはうまくいきます:
foo :: Fractional a => a
foo = undefined -- datum
bar :: Num a => a -> a
bar a = undefined -- function
baz :: Fractional a => a
baz = bar foo -- application
everyFractional
も . であるため、これは期待どおりに機能しNum
ます。
したがって、予想どおり、Fractional
引数をNum
パラメーターに渡すことができます。
一方、以下も機能します。理由がわかりません。
foo :: Fractional a => a -> a
foo a = undefined -- function
bar :: Num a => a
bar = undefined -- datum
baz :: Fractional a => a
baz = foo bar -- application
意外と効く!ではないものがあり ます。Num
Fractionals
では、なぜNum
引数をFractional
パラメーターに渡すことができるのでしょうか? 説明できますか?