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 10 segs
hace 1 hora 13 mins
hace 3 horas 1 min
hace 10 horas 44 mins
hace 13 horas 36 mins
hace 15 horas 3 mins
hace 15 horas 10 mins
hace 15 horas 50 mins
hace 1 día 32 mins
hace 1 día 37 mins