giles
80ab039ada
Test, Build, and Deploy / test-build-deploy (push) Has been cancelled
mk: phase 7 — table-1 + table-3, Ackermann canary
...
Two more arities of the naive memoization wrapper:
table-1: predicate (1-arg) tabling. Cache entry is :ok / :no.
Demonstrated with a tabled membero-as-predicate.
table-3: 3-arg (i1 i2 output) tabling. Cache key joins the two
inputs; cache value is the output value list.
Canonical demo: tabled Ackermann.
(ack-o 0 0 q) -> 1
(ack-o 2 3 q) -> 9
(ack-o 3 3 q) -> 61
A(3,3) executes A(2,..) many times, A(1,..) more, A(0,..) most. With
table-3 each (m, n) pair is computed once.
6 new tests, 644/644 cumulative.
2026-05-08 22:29:15 +00:00
..
2026-05-08 12:16:40 +00:00
2026-05-08 12:29:34 +00:00
2026-05-08 12:02:13 +00:00
2026-05-08 07:50:03 +00:00
2026-05-08 14:35:19 +00:00
2026-05-08 14:06:19 +00:00
2026-05-08 14:09:18 +00:00
2026-05-08 14:24:28 +00:00
2026-05-08 14:34:10 +00:00
2026-05-08 14:36:25 +00:00
2026-05-08 14:37:17 +00:00
2026-05-07 21:51:52 +00:00
2026-05-07 20:24:42 +00:00
2026-05-07 20:01:10 +00:00
2026-05-08 12:28:31 +00:00
2026-05-08 11:19:29 +00:00
2026-05-08 11:27:49 +00:00
2026-05-08 12:20:03 +00:00
2026-05-08 07:56:58 +00:00
2026-05-08 12:24:23 +00:00
2026-05-08 10:46:13 +00:00
2026-05-08 12:23:40 +00:00
2026-05-08 12:21:42 +00:00
2026-05-07 20:24:42 +00:00
2026-05-07 20:24:42 +00:00
2026-05-08 11:15:24 +00:00
2026-05-08 11:49:47 +00:00
2026-05-08 11:54:24 +00:00
2026-05-08 11:25:12 +00:00
2026-05-08 11:00:12 +00:00
2026-05-08 10:43:45 +00:00
2026-05-08 12:15:53 +00:00
2026-05-08 11:09:48 +00:00
2026-05-08 11:11:26 +00:00
2026-05-08 07:41:51 +00:00
2026-05-08 12:12:32 +00:00
2026-05-07 23:29:08 +00:00
2026-05-08 11:36:14 +00:00
2026-05-08 12:27:03 +00:00
2026-05-08 11:57:12 +00:00
2026-05-08 11:38:29 +00:00
2026-05-08 11:30:02 +00:00
2026-05-08 12:18:25 +00:00
2026-05-08 12:07:00 +00:00
2026-05-07 21:54:16 +00:00
2026-05-08 11:13:22 +00:00
2026-05-08 11:40:28 +00:00
2026-05-07 23:27:16 +00:00
2026-05-08 11:07:33 +00:00
2026-05-08 14:44:59 +00:00
2026-05-08 10:41:02 +00:00
2026-05-08 11:22:12 +00:00
2026-05-08 07:22:41 +00:00
2026-05-08 12:04:17 +00:00
2026-05-08 11:34:28 +00:00
2026-05-08 11:51:51 +00:00
2026-05-07 20:03:42 +00:00
2026-05-08 11:47:27 +00:00
2026-05-08 12:25:36 +00:00
2026-05-08 12:10:52 +00:00
2026-05-08 11:45:31 +00:00
2026-05-08 12:09:06 +00:00
2026-05-08 12:14:15 +00:00
2026-05-08 11:59:41 +00:00
2026-05-08 22:29:15 +00:00
2026-05-08 22:27:10 +00:00
2026-05-08 11:32:33 +00:00
2026-05-08 12:30:53 +00:00
2026-05-08 11:17:27 +00:00
2026-05-07 19:45:47 +00:00
2026-05-08 12:31:53 +00:00