Pada tulisan sebelumnya, Referential Transparency, disebutkan bahwa syarat referential transparancy adalah sebuah fungsi harus dapat dipastikan selalu menghasilkan nilai return yang sama jika dipanggil dengan parameter yang sama, kapanpun dan dimanapun itu. Dari ide tersebut, karena fungsi dapat dipastikan akan selalu menghasilkan hasil yang sama bila diberi parameter yang sama, kita dapat dengan mudah membuat cache untuk hasil-hasil fungsi tersebut. Mirip dengan cache pada halaman web, dimana HTTP request dengan method GET yang bersifat idempotent, bisa dengan mudah dibuat cache-nya, sehingga client bisa sama sekali tidak menyentuh application server dan basis data. Hal ini memiliki konsekuensi yang menguntungkan, yaitu peningkatan performa.
Kembali ke pemrograman fungsional, menampung hasil fungsi ke dalam cache juga biasa disebut dengan istilah memoize. Berikut ini adalah contoh memoized function dengan bahasa Erlang:
Kita tahu bahwa sebagian besar orang makan 3 kali dalam satu hari, sehingga dapat dipastikan bila sebagian besar pemanggilan fungsi akan menggunakan parameter 3. Oleh karena itu, fungsi frekuensi_makan_perhari(3) dapat kita buat cache-nya, sehingga beban kerja CPU berkurang karena tidak melakukan perhitungan matematika setiap mengeksekusi fungsi dengan parameter 3. jadi setiap kali ada yang memanggil fungsi dengan parameter 3, maka yang dipanggil adalah frekuensi_makan_perhari(3) bukan frekuansi_makan_perhari(N), karena memang itulah yang secara pattern sesuai (dengan pattern matching).
Ini adalah contoh yang sangat sederhana, mungkin masih belum menggambarkan bagaimana potensi memoized function yang sebenarnya.




