Eu continuo ouvindo muito sobre functores em C ++. Alguém pode me dar uma visão geral sobre o que são e em que casos seriam
Eu continuo ouvindo muito sobre functores em C ++. Alguém pode me dar uma visão geral sobre o que são e em que casos seriam
Estou procurando as regras que envolvem a passagem de modelos C ++ como argumentos. Isso é suportado pelo C ++, como mostra um exemplo aqui: #include <iostream> void add1(int &v) { v+=1; } void add2(int &v) { v+=2; } template <void (*T)(int &)> void doOperation() {...
Encontrei o termo 'Functor' algumas vezes enquanto lia vários artigos sobre programação funcional, mas os autores normalmente assumem que o leitor já entende o termo. A pesquisa na web forneceu descrições excessivamente técnicas (consulte o artigo da Wikipedia ) ou descrições incrivelmente vagas...
Enquanto explico para alguém o que é uma classe de tipo X, luto para encontrar bons exemplos de estruturas de dados que são exatamente X. Então, peço exemplos para: Um construtor de tipo que não é um Functor. Um construtor de tipo que é um Functor, mas não Aplicável. Um construtor de tipo que é...
Fechadas. Esta pergunta não atende às diretrizes de estouro de pilha . No momento, não está aceitando respostas. Deseja melhorar esta pergunta? Atualize a pergunta para que ela esteja no tópico do Stack Overflow. Fechado há 4 anos . Melhore esta...
map :: (a -> b) -> [a] -> [b] fmap :: Functor f => (a -> b) -> f a -> f b liftM :: Monad m => (a -> b) -> m a -> m b Por que temos três funções diferentes que fazem essencialmente a mesma
A Applicativeclasse typeclass representa funcores monoidais relaxados que preservam a estrutura monoidal cartesiana na categoria de funções digitadas. Em outras palavras, dados os isomorfismos canônicos que testemunham que (,)formam uma estrutura monoidal: -- Implementations left to the motivated...
A categoria de conjuntos é monoidal cartesiano e cocartesiano monoidal. Os tipos de isomorfismos canônicos que testemunham essas duas estruturas monoidais estão listados abaixo: type x + y = Either x y type x × y = (x, y) data Iso a b = Iso { fwd :: a -> b, bwd :: b -> a } eassoc :: Iso...