lunes, agosto 13, 2007

Java descubre MAP!

Increíblemente a más de una década de su aparición se discute sobre las bondades de los iteradores internos en Java, de hecho hasta mencionan a Lisp, tal vez se están dando cuenta de que son prácticamente el único lenguaje moderno que no tiene map!
Lo que más me gustó del artículo es el último ejemplo, donde se resalta la claridad del código:
public  InternalIterable
internalize(final ExternalIterable ext) {
return new InternalIterable() {
public void iterate(Function closure) {
for (ExternalIterator it = ext.iterator();
it.hasNext(); ) {
closure.invoke(it.next());
}
}
};
}

Voy a escribirlo en Perl, que siempre se considera como un lenguaje obscuro y difícil:

sub internalize {
my $ext = shift;
return sub {
my $closure = shift;
$closure->($_) for @$ext
}
}

Serán ideas mías, pero creo que el segundo fragmento es mas claro y fácil de escribir, de leer y de entender.
De cualquier modo, ¿Será que la comunidad de Java esta comenzando a ver a los lados?
Nunca es tarde cuando la dicha es buena, y si se deciden a hacerlo, recomendaría que también copiaran algunas otras ideas de lenguajes más avanzados, particularmente en las áreas de generalización y paralelismo, si no se quieren perder el autobús.

No hay comentarios.: