สมมติว่าเป็นฟังก์ชั่นบริสุทธิ์ที่ทำบางสิ่งที่มีราคาแพงเช่นการกลับรายการปัจจัยสำคัญของfn(x)
x
และขอบอกว่าเราทำให้รุ่น memoized memoizedFn(x)
ของฟังก์ชั่นเดียวกันที่เรียกว่า มันจะส่งกลับผลลัพธ์เดียวกันสำหรับอินพุตที่กำหนด แต่จะเก็บแคชส่วนตัวของผลลัพธ์ก่อนหน้าเพื่อปรับปรุงประสิทธิภาพ
การพูดอย่างเป็นทางการmemoizedFn(x)
ถือว่าบริสุทธิ์หรือไม่
หรือมีชื่ออื่นหรือคำที่มีคุณสมบัติเหมาะสมที่ใช้เพื่ออ้างถึงฟังก์ชั่นดังกล่าวในการสนทนาของ FP? (เช่นฟังก์ชั่นที่มีผลข้างเคียงที่อาจส่งผลกระทบต่อความซับซ้อนในการคำนวณของการโทรครั้งต่อไป แต่อาจไม่ส่งผลกระทบต่อค่าส่งคืน)
funcx(){sleep(cached_time--); return 0;}
ส่งคืน val เดียวกันทุกครั้ง แต่จะทำงานต่างกัน