Para mí, este es un caso de uso clásico para la interfaz de usuario monádica.
for {
opt <- iterable
t <- opt
} yield t
Es sólo azúcar para la solución flatMap
descrito anteriormente, y produce código de bytes idénticos. Sin embargo, la sintaxis es importante, y creo que uno de los mejores momentos para usar la sintaxis monádica for
de Scala es cuando trabajas con Option
, especialmente en conjunto con las colecciones.
creo que esta formulación es considerablemente más fácil de leer, especialmente para aquellos que no están muy familiarizados con la programación funcional. A menudo pruebo las expresiones monádica y funcional de un ciclo y veo que parece más directo. Creo flatMap es nombre difícil para la mayoría de la gente asimilar (y, de hecho, que calificó de >>=
tiene sentido más intuitivo para mí).
Saber quién eres (de la lista de correo scala-usuario), tienes razón Estoy seguro (no tienen acceso a mi ENVT dev Scala en el momento :-). ¿Puedes explicarme un poco cómo funciona esto? Prometo que no soy un idiota pero no tengo ni idea de cómo se supone que debería obtener esto del scaladoc –
¿No sería "flatMap {_ elements}"? (¡He leído el scaladoc otra vez!) –
Sería genial ver más gurús de Scala en StackOverflow. La lista de correo de scala-usuario está llenando mi bandeja de entrada con arcanas discusiones sobre break/continue :-) –