Estoy buscando las reglas que implican pasar plantillas de C ++ como argumentos. Esto es compatible con C ++ como se muestra en un ejemplo aquí: #include <iostream> void add1(int &v) { v+=1; } void add2(int &v) { v+=2; } template <void (*T)(int &)> void doOperation() { int temp=0; T(temp); …
Me he encontrado con el término 'Functor' varias veces mientras leía varios artículos sobre programación funcional, pero los autores generalmente asumen que el lector ya entiende el término. Mirar en la web ha proporcionado descripciones excesivamente técnicas (vea el artículo de Wikipedia ) o descripciones increíblemente vagas (vea la sección …
Al explicarle a alguien qué es un tipo de clase X, lucho por encontrar buenos ejemplos de estructuras de datos que sean exactamente X. Entonces, solicito ejemplos para: Un constructor de tipos que no es un Functor. Un constructor de tipos que es un Functor, pero no Aplicativo. Un constructor …
Cerrado. Esta pregunta no cumple con las pautas de desbordamiento de pila . Actualmente no está aceptando respuestas. ¿Quieres mejorar esta pregunta? Actualice la pregunta para que sea sobre el tema de Stack Overflow. Cerrado hace 4 años . Mejora esta pregunta F # se deriva de OCaml, pero ¿qué …
map :: (a -> b) -> [a] -> [b] fmap :: Functor f => (a -> b) -> f a -> f b liftM :: Monad m => (a -> b) -> m a -> m b ¿Por qué tenemos tres funciones diferentes que hacen esencialmente lo mismo?
Esta no es una pregunta de función lambda, sé que puedo asignar una lambda a una variable. ¿Cuál es el punto de permitirnos declarar, pero no definir una función dentro del código? Por ejemplo: #include <iostream> int main() { // This is illegal // int one(int bar) { return 13 …
La Applicativeclase de tipos representa functores monoidales laxos que preservan la estructura monoidal cartesiana en la categoría de funciones escritas. En otras palabras, dados los testigos de isomorfismos canónicos que (,)forman una estructura monoidal: -- Implementations left to the motivated reader assoc_fwd :: ((a, b), c) -> (a, (b, c)) …
La categoría de conjuntos es tanto monoidal cartesiana como monoidal cocartesiana. Los tipos de isomorfismos canónicos que presencian estas dos estructuras monoidales se enumeran a continuación: type x + y = Either x y type x × y = (x, y) data Iso a b = Iso { fwd :: …