这个例子中的函子是什么?

What is the functor in this example?

我有下面一行代码:

fmap (*2) (*11) 3

我试图理解这个例子中我的仿函数是什么,因为当我检查类型时,我得到了这个:

Prelude> :t fmap (*2) (*11) 3
fmap (*2) (*11) 3 :: Num b => b

而且我在那里没有看到任何类似仿函数的东西。如果我做一个部分应用程序(这就是删除 3 的意思吗?)我得到以下信息:

Prelude> :t fmap (*2) (*11)
fmap (*2) (*11) :: Num a => a -> a

而且我仍然没有看到任何看起来像函子的东西。

我是不是漏掉了什么?

有问题的函子是函数函子。函数函子定义为

instance Functor ((->) a) where
    fmap f g = f . g

其中(->) a b ~ a -> b,只是把->运算符变成了中缀形式。所以这段代码减少到

(*2) . (*11) $ 3