Cuando comencé a buscar en Scala, me gustó el aspecto de las for-comprehensions. Parecían ser un poco como los bucles foreach a los que estaba acostumbrado desde Java 5, pero con restricciones funcionales y mucha dulzura sintáctica dulce.Comprensiones de Scala: ¿característica vital o azúcar sintáctico?
Pero como he absorbido el estilo Scala, me parece que cada vez que podía usar una comprension de que estoy usando map
, flatMap
, filter
, reduce
y foreach
lugar. La intención del código me parece más clara de esa manera, con menos posibles sorpresas ocultas, y también suelen ser códigos más cortos.
Hasta donde yo sé, las comprensiones siempre se compilan en estos métodos de todos modos, así que me pregunto: ¿para qué sirven en realidad? ¿Me estoy perdiendo alguna actualización funcional (no sería la primera vez)? ¿Los for-comprehensions hacen algo que las otras características no pueden, o al menos serían mucho más torpes? ¿Brillan en un caso de uso particular? ¿Es realmente solo una cuestión de gusto personal?
Esto es casi un duplicado del http://stackoverflow.com/questions/1052476/can-alguien-explique-scalas-rendimiento. Esa pregunta se preguntaba qué significaba 'rendimiento', este se pregunta cuál es su propósito. Las respuestas son casi iguales. –