関数を引数にとって関数を返す関数

「C 言語がポインタで躓くなら、関数型言語の躓きは『関数を引数にとって関数を返す関数』ではないか」と Twitter でつぶやいていた人がいたのでふと考えてみたのですが

map :: (a -> b) -> [a] -> [b]

なので

f :: a -> b

が与えられると

map f :: [a] -> [b]

で map はまさに「関数を引数にとって関数を返す関数」の代表例ではないかと思った次第。あと zipWith なんかも似てる。