¿Los métodos iterativos como los que se encuentran comúnmente en lenguajes modernos como C #, JavaScript y (con suerte) en Java 8 reducen el impacto de la complejidad ciclomática en la comprensibilidad y compatibilidad del código?
Por ejemplo, en C # podríamos tener el siguiente código:
List<String> filteredList = new List<String>();
foreach (String s in originalList){
if (matches(s)){
filteredList.add(s);
}
}
Esto tiene una complejidad ciclomática simple de 2.
Podríamos reescribir esto fácilmente como:
List<String> filteredList = originalList.where(s => matches(s));
Que tiene una complejidad ciclomática simple de 0.
¿Esto realmente da como resultado un código más compatible? ¿Hay alguna investigación real sobre este tema?