Esta pregunta es para las personas que conocen tanto Haskell (o cualquier otro lenguaje funcional que soporta Tipos de mayor kinded) y C++ ...Tipos de mayor kinded con C++
Es posible modelar tipos más altos kinded usando C++ plantillas? ¿Si es así, entonces cómo?
EDIT:
De this presentación por Tony Morris:
de orden superior Polimorfismo:
lenguajes como Java y C# tienen polimorfismo de primer orden, porque ellos nos permiten abstraer en tipos. p.ej.
List<A>
puede tener una funciónreverse
que funciona en cualquier tipo de elemento (A
).lenguajes de programación más prácticas y sistemas de tipo nos permiten abstracto en constructores de tipos como también.
Esta característica se llama polimorfismo de orden superior (o de mayor peso).
Ejemplo:
Pseudo-Java con una notación inventado para el polimorfismo de orden superior
interface Transformer<X, Y> {
Y transform(X x);
}
interface Monad<M> { // M :: * -> *
<A> M<A> pure(A a);
<A, B> M<B> bind(Transformer<A, M<B>> t, M<A> a);
}
Tal vez usted podría dar un ejemplo de su objetivo. Para nosotros, no conocemos los tipos de lenguaje funcional, tipos muy buenos que podrían ayudarnos. – GManNickG
@GMan: Podría dar un ejemplo, pero soy consciente de que apenas significará nada, excepto para las personas que ya lo conocen. Así que no me molesté en incluir un ejemplo. –
@Venkat: me refiero a un objetivo, ¿cuál es tu panorama general? Desea un tipo de mayor nivel para: __________. Además, un ejemplo muy simple con comentarios sería mejor que nada. :) – GManNickG