2020-01-16 06:59:34 +03:00
|
|
|
import Collection;
|
|
|
|
|
|
|
|
|
|
fun f (x, y) {
|
|
|
|
|
fun () {x+y}
|
|
|
|
|
}
|
|
|
|
|
|
2021-01-31 22:25:31 +03:00
|
|
|
var t = emptyMemo (),
|
2020-01-16 06:59:34 +03:00
|
|
|
a = lookupMemo (t, "abc"),
|
|
|
|
|
b = lookupMemo (t, [1, 2, 3, 4, "abc"]),
|
|
|
|
|
c = lookupMemo (t, f (5, 6));
|
|
|
|
|
|
|
|
|
|
printf ("Cached: %d\n", lookupMemo (t, "abc") == a);
|
|
|
|
|
printf ("Cached: %d\n", lookupMemo (t, "abc") == a);
|
|
|
|
|
printf ("Cached: %d\n", lookupMemo (t, "abc") == a);
|
|
|
|
|
|
|
|
|
|
printf ("Cached: %d\n", lookupMemo (t, [1, 2, 3, 4, "abc"]) == b);
|
|
|
|
|
printf ("Cached: %d\n", lookupMemo (t, [1, 2, 3, 4, "abc"]) == b);
|
|
|
|
|
printf ("Cached: %d\n", lookupMemo (t, [1, 2, 3, 4, "abc"]) == b);
|
|
|
|
|
|
|
|
|
|
printf ("Cached: %d\n", lookupMemo (t, f (5, 6)) == c);
|
|
|
|
|
printf ("Cached: %d\n", lookupMemo (t, f (5, 6)) == c);
|
|
|
|
|
printf ("Cached: %d\n", lookupMemo (t, f (5, 6)) == c)
|