"Memoization" tabiri bilgisayar bilimlerinde ilk kez
Donald Michie'nin
1968 yılında
Nature
dergisinde yayımlanan
Memo functions and machine learning
(Memo fonksiyonları ve makina öğrenimi) makalesi ile gündeme gelmiştir.
Memoization tekniği bir fonksiyonu hesaplarken önceden hesaplanmış değerleri
hesaplamadan kullanmak, dolayısı ile işlemi hızlandırmak olarak tarif edilebilir.
Sözcük olarak "memorization"ı yani "ezberleme" eylemini çağrıştırmakla birlikte
daha genel bir anlamı kapsamaktadır.
Programlama dilinden bağımsız olmakla birlikte, bu yazıda "memoization" tekniğinin Common Lisp'te nasıl kullanılacağına bakacağız. Bunun için Peter Norvig'in PAIP kitabı ana eksenimizi oluşturacak.
Görünüşe göre bazı Lisp hacker'ları da yükselen Ruby güneşinden gözlerini kaçıramaz oldular artık (umarım bu metafor eski emperyal Japonya'nın kullandığı birşey değildir :-) herneyse...)
Python'cular Norvig'in fi tarihinde büyük ihtimalle Ruby'den habersiz bir şekilde yazdığı Python Lisp karşılaşmasını okumakla kendilerini kandırmasınlar boşuna. Lisp'in veliahtı olmaya en yakın aday şu an için Ruby gibi görünüyor. Derlenmiş dil hızı isteyenlere ise hak yememek adına OCaml'ı işaret etmek gerekiyor..