Las comprehensiones (o algo que se les parezca) son una característica ya prácticamente obligatoria en los nuevos lenguajes, al menos si quieren ser considerados cool. Y Ceylon no se queda atrás.
Las comprehensiones en Ceylon funcionan usando una variante especial de for, la cual acepta una sola expresión, en vez de un bloque de código. La expresión puede ser a su vez otro for, o bien un if, que actúa como un filtro, o cualquier otra expresión que devuelva algún valor. Todo eso termina siendo azúcar sintáctica para crear y devolver un objeto Iterable que se puede pasar en invocaciones a métodos o funciones que esperan argumentos secuenciados (de los que terminan con elípsis), o usarse directamente en cualquier lugar donde se pueda usar un Iterable.
Esto a fin de cuentas puede ser más poderoso que tener métodos como map y filter en las colecciones, y además permite hacer implementaciones más eficientes, ya que los iteradores intermedios involucrados se van utilizando conforme se necesitan, en vez de tener que procesar completamente una colección antes de pasar a la siguiente fase.
Si usan Groovy o Scala, puede que ya estén familiarizados con algunas de estas operaciones. Por ejemplo, tomar una lista de palabras y devolverlas en reversa:
["hola", "mundo", "javaMexico", "Ceylon"].collect { it.reversed() } //Groovy
List("hola", "mundo", "javaMexico", "Ceylon").map { _.reverse } //Scala
for (w in { "hola", "mundo", "javaMexico", "Ceylon" }) w.reversed; //Ceylon
Comentarios recientes
hace 47 mins 53 segs
hace 8 horas 42 mins
hace 12 horas 12 mins
hace 12 horas 54 mins
hace 12 horas 58 mins
hace 12 horas 58 mins
hace 13 horas 4 segs
hace 13 horas 53 mins
hace 14 horas 21 mins
hace 15 horas 30 mins