From 7b201fc0587e8012189f7b1f245734e117e4975c Mon Sep 17 00:00:00 2001 From: Jedidiah Barber Date: Sat, 24 Jan 2026 01:11:17 +1300 Subject: Unrolled linked lists for State --- readme.md | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'readme.md') diff --git a/readme.md b/readme.md index 089ffee..9a47632 100644 --- a/readme.md +++ b/readme.md @@ -90,12 +90,13 @@ instead. All the Goal operations beyond the microKanren four take an array of Terms as input in order to allow for Conjunct to be reasonably implemented. -The State datatype makes use of custom linked lists, and the bookkeeping data -in the Collector package uses a custom directed acyclic graph structure that -reflects the main Goal graph. This is done instead of using Vectors or Maps -from the standard library both to improve speed and reduce memory requirements. -The improvement due to tail sharing is considerable, despite the theoretically -expensive operations involved walking the list to reify a variable. +The State datatype makes use of custom unrolled linked lists, and the +bookkeeping data in the Collector package uses a custom directed acyclic graph +structure that reflects the main Goal graph. This is done instead of using +Vectors or Maps from the standard library both to improve speed and reduce +memory requirements. The improvement due to tail sharing is considerable, +despite the theoretically expensive operations involved in walking the list to +reify a variable. -- cgit