Qual é a definição de Aplicador de Functor no POV da teoria de categorias?
Consegui mapear a definição de Functor da teoria das categorias para a definição de Haskell da seguinte maneira: desde objetos deHask
são tipos, o functorF
a
doHask
para o novo tipoF a
dizendo, grosso modo, acrescentando "F" a ele.mapeia todo morfismoa -> b
doHask
para o novo morfismoF a -> F b
usandofmap :: (a -> b) -> (f a -> f b)
.Por enquanto, tudo bem. Agora eu chego aoApplicative
, e não encontra menção a esse conceito nos livros didáticos. Observando o que isso contribui paraFunctor
, ap :: f (a -> b) -> f a -> f b
, Tentei criar minha própria definição.
Primeiro, notei que desde(->)
também é um tipo, morfismos deHask
também são objetos disso. Diante disso, sugeri que o functor aplicativo é um functor que também pode mapear objetos "flecha" da categoria de origem em morfismos do destino.
Esta é uma intuição certa? Você pode fornecer uma definição mais formal e rigorosa?