Me interesa conocer el conjunto completo de alternativas al polimorfismo de subtipo en scala.¿Cuáles son las alternativas al subtipo de polimorfismo en scala?
Respuesta
Las herramientas básicas para el de lograr polimorfismo estáticamente comprobable en Scala son
- Subtipificación (BOG-estándar polimorfismo OO)
- Tipo de parametrización (permite la variación polimórfica y limitaciones)
- Auto-tipificación (permite la restricción y especialización del polimorfismo de OO)
- Conversión implícita (permite la construcción polimórfica posfacto)
- Mecanografía estructural (permite poli morfismo basado en características, en lugar de tipo)
- límites tipo general (permitiendo limitaciones extremadamente precisas sobre polimorfismo permitido)
- patrón de coincidencia (permite polimorfismo basado en la estructura de datos, similar a los tipos de datos abstractos) tipos kinded-Superior
- (permitiendo polimorfismo sobre construcciones polimórficas)
Llamar a todas estas 'alternativas' es probablemente la palabra incorrecta, ya que están muy bien integradas. No es raro que algunos algoritmos polimórficos se expresen mediante el uso de varias de estas herramientas en conjunto.
También vale la pena señalar el lugar de las comprensiones en el polimorfismo de Scala. Porque las comprensiones no parecen particularmente polimórficas. Debajo de la superficie, las comprensiones son solo azúcar sintáctico para llamadas a filter/map/flatMap, y las implementaciones de esos métodos tienden a ser altamente polimórficas. Por lo tanto, lo que parece ser comparativamente simple para bucles puede dar lugar a algunos efectos polimórficos realmente impresionantes.
- 1. ¿Cuáles son las alternativas al modelo Waterfall
- 2. ¿Cuáles son las alternativas de membresía ASP.NET?
- 3. ¿Cuáles son las alternativas al uso de phpMyAdmin?
- 4. ¿Hay alternativas al polimorfismo en C++?
- 5. ¿Cuáles son las alternativas a DataGridView?
- 6. ¿Cuáles son las alternativas a JSTL?
- 7. ¿Cuáles son las alternativas a Google Analytics?
- 8. ¿Cuáles son las mejores alternativas a Lucene?
- 9. ¿Cuáles son las alternativas a document.write?
- 10. ¿Cuáles son las alternativas a wmctrl?
- 11. ¿Cuáles son las alternativas más elegantes a las interfaces constantes?
- 12. ¿Cuáles son las mejores características de Scala?
- 13. ¿Cuáles son las alternativas para evaluar en JavaScript?
- 14. ¿Cuáles son las alternativas para estos controles en iPhone
- 15. ¿Cuáles son las alternativas de idioma y producto a Akka?
- 16. ¿Cuáles son las alternativas para los botones de radio?
- 17. ¿Cuáles son las alternativas de código abierto para Lattix?
- 18. ¿Cuáles son algunas de las alternativas del pagerank?
- 19. ¿Cuáles son las alternativas de Wordpress para Ruby on Rails?
- 20. ¿Sigue siendo importante el DDE? ¿Cuáles son las alternativas?
- 21. ¿Cuáles son todas las alternativas disponibles a WCF?
- 22. ¿Cuáles son algunas de las alternativas al patrón asincrónico basado en eventos?
- 23. OOoBeans muerto? - ¿Cuáles son mis alternativas?
- 24. ¿Cuáles son todas las instancias de azúcar sintáctico en Scala?
- 25. ¿Cuáles son las alternativas al patrón de diseño de Cadena de responsabilidad?
- 26. ¿Cuáles son las diferencias entre Int e Integer en Scala?
- 27. ¿Las referencias y punteros son iguales con respecto al polimorfismo?
- 28. ¿Cuáles son las limitaciones de los Manifiestos de Scala?
- 29. ¿Cuáles son las alternativas a controlador JDBC para la base de datos PostgreSQL acceso
- 30. Cuáles son las alternativas al Diseño Dirigido por Dominio bajo MVC
Probablemente sea más exacto describir el tipado estructural como "basado en características del valor" que en "comportamiento [del valor]", ya que el comportamiento es una propiedad opaca desde la perspectiva del sistema de tipos. –
Extraño el "soporte para tipos de personas de mayor nivel" en su lista, que es una de las características más poderosas de Scala. Creo que la mejor referencia sigue siendo el artículo de Adrian Moors: http://people.cs.kuleuven.be/~adriaan.moors/files/higher.pdf – Landei
Excelentes comentarios. Edición. –