所以我工作的一些代碼(去在實踐考試對球拍的課程),我必須做到以下幾點:寫緩存功能球拍
寫一個函數cached-assoc
是獲得一個列表xs
和n
,並返回一個函數,該函數接受一個參數v
並返回(assoc v xs
)將返回的相同內容。
您應該使用最近結果的n元素緩存來使該函數可能比調用assoc更快。緩存應該是一個長度爲n的向量,每當調用cached-assoc返回的函數時,調用cached-assoc和used-and-possible-mutated就可以創建這個向量。
緩存開始爲空(所有元素#f)。當調用cached-assoc返回的函數時,它首先檢查緩存中的答案。如果它不在那裏,它使用assoc
和xs
來得到答案,如果結果不是#f
(即,xs有一個匹配的對),它會在返回 (使用向量集!)之前將該對添加到緩存中。 。
槽在循環方式中所使用的高速緩衝存儲器:在第一時間在一對被添加到它被置於0
位置的高速緩存中,下一對被置於位置1,等等,直到定位n - 1
然後回到位置0
(替換那對已經有),然後位置1
等
我不知道如何做到這一點。
什麼特別你不知道?或者,也許,你有什麼想法該怎麼做?當然,你必須知道_something_,否則你有更大的問題。 –