Các phương thức lặp như thường thấy trong các ngôn ngữ hiện đại như C #, JavaScript và (hy vọng) trong Java 8 có làm giảm tác động của độ phức tạp theo chu kỳ đối với tính dễ hiểu và khả năng hỗ trợ của mã không?
Ví dụ: trong C # chúng ta có thể có đoạn mã sau:
List<String> filteredList = new List<String>();
foreach (String s in originalList){
if (matches(s)){
filteredList.add(s);
}
}
Điều này có độ phức tạp chu kỳ đơn giản là 2.
Chúng ta có thể dễ dàng viết lại điều này như sau:
List<String> filteredList = originalList.where(s => matches(s));
Trong đó có độ phức tạp chu kỳ đơn giản là 0.
Điều này thực sự dẫn đến mã hỗ trợ nhiều hơn? Có bất kỳ nghiên cứu thực tế về chủ đề này?