Czy metody iteracyjne, które są powszechnie spotykane w nowoczesnych językach, takich jak C #, JavaScript i (mam nadzieję) w Javie 8, zmniejszają wpływ cykliczności złożoności na zrozumiałość i obsługę kodu?
Na przykład w C # możemy mieć następujący kod:
List<String> filteredList = new List<String>();
foreach (String s in originalList){
if (matches(s)){
filteredList.add(s);
}
}
Ma to prostą cykliczną złożoność 2.
Możemy z łatwością ponownie napisać to jako:
List<String> filteredList = originalList.where(s => matches(s));
Który ma prostą cykliczną złożoność równą 0.
Czy to faktycznie powoduje, że kod jest bardziej obsługiwany? Czy istnieją jakieś rzeczywiste badania na ten temat?