Haskellのドット演算子(.)
f . g
と書いたときにg
の結果がfに渡されるイメージで、Unix
の|
パイプに例えられます。
*> :t (.) (.) :: (b -> c) -> (a -> b) -> a -> c
表現は正確ではありませんが、渡される結果が「1つ」でなくても、ドット演算子は使えます。
> let f = undefined :: b->c->d > :t f f :: b -> c -> d > let g = undefined :: a->b->c > :t g g :: a -> b -> c > :t f . g f . g :: a -> c >
b->c
を(b->c)
をみなして、
f :: b->c->d ------> (b->c)->d g :: a->b->c ------> a->(b->c)
と考えます。