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.:
Publicar un comentario