มีแบบแผนการตั้งชื่อสำหรับฟังก์ชันคำสั่งซื้อที่สูงขึ้นหรือไม่? นั่นคือฟังก์ชันที่ส่งคืนฟังก์ชันอื่น
ตัวอย่างใน Javascript:
function onlyDivisibleBy(div) { // <-- higher order function
return function (n) {
return n % div === 0;
}
}
var arr = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9];
arr.filter(onlyDivisibleBy(3)); // [0, 3, 6, 9]
arr.filter(onlyDivisibleBy(5)); // [0, 5]
ฉันมีแนวโน้มที่จะเขียนตามข้างบน: นั่นคือการเพิ่มประสิทธิภาพสำหรับความชัดเจนที่จุดอุทธรณ์ (ฉันจะอ่านบรรทัดสุดท้ายข้างต้นเป็น "กรองอาร์เรย์เพื่อให้ได้รายการเท่านั้นหารด้วย 5") แต่ที่จุดนิยามออกไป จากบริบทที่ใช้อยู่มันไม่ง่ายเลยที่จะเข้าใจว่าฟังก์ชันนี้ทำอะไรจากชื่อของมัน