blob: 551bcd8cf4f1fee1264636735337515154e138d2 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
module Main(main) where
import Memo1
testMemo = do
let keys = [ [1..n] | n <- [1..1000] ]
keys2 = [ [n,n-1..1] | n <- [1..1000] ]
mlength = memo length
putStr (show (map mlength (keys ++ keys ++ keys2 ++ keys2)))
putStr (show (mlength [1..100000]))
-- mlength will memoize itself over each element of 'keys', returning
-- the memoized result the second time around. Then we move onto
-- keys2, and while we're doing this the first lot of memo table
-- entries can be purged. Finally, we do a a large computation
-- (length [1..10000]) to allow time for the memo table to be fully
-- purged.
main = testMemo
|