0
(.) :: (b -> c) -> (a -> b) -> a -> c
f . g = \x -> f(g x)

関数型の読み方がよくわかりません。

  • (b -> c)関数は引数bを取り、cを返します、私はこれが関数fであると仮定します
  • (a -> b)関数は引数aを取り、bを返します、私はこれが関数gであると仮定します

c in(b-> c)とa in(a- > b)がa->cにどのように関連しているかわからない

どんな助けでも大歓迎です、ありがとう!

4

1 に答える 1

5

おそらく、もう少し括弧を付ける方が良いでしょう、

(.) :: (b -> c) -> (a -> b) -> (a -> c)

そしてそれを読んでください:

(.)2つの引数を取る、

  • タイプの1つの関数(fb -> c
  • タイプの1つの関数(ga -> b

f . g型の関数()を返しますa -> c

a結果の関数の引数の型は、(.)の2番目の引数(のg引数に最初に適用されるf . g)の引数の型であり、合成の結果の型は、(.)の最初の引数の結果の型(f、次に、引数への適用の結果に適用されgます)。

于 2013-02-05T13:59:06.400 に答える