Scala como lenguaje para la programación genérica

13

En el documento "Un estudio comparativo extendido del soporte de lenguaje para la programación genérica" por Garcia et al. se ofrece una comparación interesante de las funciones de lenguajes de programación para la programación genérica:

conlabreveexplicacióndelaterminología:

¿Alguien puede probar el soporte de Scala para la programación genérica dentro de este marco? Es decir. agregue una columna en la primera tabla con explicaciones si es posible.

    
pregunta Artem Pelenitsyn 24.11.2012 - 12:00

1 respuesta

7

Como se menciona en uno de los comentarios desde el OP, esta es la tabla que explica cómo Scala compara la compatibilidad con la programación genérica. Enlace a la fuente pdf

Más adelante, se proporciona el siguiente resumen:

  

Scala
  Usando el patrón CONCEPTO podemos modelar conceptos de múltiples tipos, múltiples restricciones y apoyar el modelado retroactivo. Además, el soporte de Scala para implicaciones significa que los inconvenientes de las soluciones Java y C # en términos de la sobrecarga adicional, no se aplican a Scala. Por lo tanto, Scala puntúa bien tanto en la deducción implícita de argumentos como en los criterios de modelado retroactivo. La Sección 6 muestra que los tipos asociados son compatibles con Scala a través de los miembros de tipo y los tipos de métodos dependientes, y los miembros de tipo también se pueden usar como alias de tipo.
  Como se muestra en la Sección 3, Scala es compatible con modelos con alcance léxico. Además, la comprobación de tipo es totalmente modular. Las implicaciones de superposición priorizadas brindan cierto soporte para la sobrecarga basada en conceptos, como se ilustra en el ejemplo zipWithN en la Sección 6.5. Sin embargo, los modelos superpuestos deben estructurarse utilizando una jerarquía de subtipos, lo que puede no ser siempre deseable. Por lo tanto, el puntaje de esta característica solo es suficiente. Finalmente, Scala tiene soporte completo para funciones de primera clase y también admite restricciones de igualdad.
  En resumen, Scala resulta ser un lenguaje con un excelente soporte para funciones de programación genéricas, logrando obtener el mismo nivel, o incluso un poco mejor, que G (que fue especialmente diseñado como un lenguaje para programación genérica en general) o Haskell ( que ha sido reconocido tiene un soporte muy bueno para la programación genérica).

Y luego en el resumen:

  

Los miembros de tipo y los tipos de método dependientes agregan poder adicional al lenguaje y una combinación de los dos mecanismos permite expresar los tipos asociados. En combinación con implícitos, los miembros de tipo y los tipos de método dependientes hacen de Scala un lenguaje listo para la programación genérica en general

    
respondido por el GlenH7 23.10.2013 - 20:59

Lea otras preguntas en las etiquetas