Tengo una clase DateTime y TimeSpan en Scala (supongamos que los operadores < y + funcionan como deberían). Estoy tratando de definir una función de "rango" que tome un tiempo de inicio/finalización y un intervalo de tiempo para avanzar. En C# lo haría con un rendimiento, y creo que debería poder hacer lo mismo en Scala ... excepto que estoy obteniendo un error extraño.Devolución e iteración de la colección con rendimiento en scala
En la línea 'yield t', aparece el mensaje "Inicio ilegal de la instrucción".
def dateRange(from : DateTime, to : DateTime, step : TimeSpan) =
{
// not sure what the list'y way of doing this is
var t = from
while(t < to)
{
yield t; // error: illegal start of statement
t = t + step
}
}
En cuanto a este código, tengo curiosidad por 2 cosas: 1) lo que hice mal? 2) el código tal como está escrito es muy imperativo (utiliza una var t, etc.). ¿Cuál es la forma más funcional de hacer esto en Scala que es razonablemente rápido?
Gracias!
'yield' en Scala tiene nada que ver con' yield' en C# (o Python). Además, Scala no tiene equivalente: busque las muchas preguntas sobre Scala, Python, rendimiento y generadores. Y, por supuesto, busque las preguntas sobre qué 'rendimiento' realmente hace. –
Lo hice, y estaba confundido. La respuesta de Debilski me dijo todo lo que necesitaba saber. – fbl