I metodi iterativi come quelli che si trovano comunemente in linguaggi moderni come C #, JavaScript e (si spera) in Java 8 riducono l'impatto della complessità ciclomatica sulla comprensibilità e supportabilità del codice?
Ad esempio in C # potremmo avere il seguente codice:
List<String> filteredList = new List<String>();
foreach (String s in originalList){
if (matches(s)){
filteredList.add(s);
}
}
Questo ha una semplice complessità ciclomatica di 2.
Potremmo facilmente riscriverlo come:
List<String> filteredList = originalList.where(s => matches(s));
Che ha una semplice complessità ciclomatica di 0.
Questo in realtà comporta più codice supportabile? C'è qualche ricerca su questo argomento?