วิธีการทำซ้ำอย่างเช่นพบได้ทั่วไปในภาษาสมัยใหม่เช่น C #, JavaScript และ (หวังว่า) ใน Java 8 ลดความซับซ้อนของวงจรที่มีต่อความเข้าใจและการสนับสนุนของโค้ดหรือไม่?
ตัวอย่างเช่นใน C # เราอาจมีรหัสต่อไปนี้:
List<String> filteredList = new List<String>();
foreach (String s in originalList){
if (matches(s)){
filteredList.add(s);
}
}
สิ่งนี้มีความซับซ้อนตามวัฏจักรของ 2
เราสามารถเขียนใหม่นี้ได้อย่างง่ายดายในฐานะ:
List<String> filteredList = originalList.where(s => matches(s));
ซึ่งมีความซับซ้อนตามวัฏจักรของ 0
สิ่งนี้ส่งผลให้มีรหัสที่สนับสนุนได้จริงหรือไม่ มีการวิจัยจริงในหัวข้อนี้หรือไม่?