From 5ee81889f4992e29fcc475e6f4687be393ba4c18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Fri, 8 Dec 2023 21:52:17 +0100 Subject: Better table printer. --- module/hnh/util/table.scm | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/module/hnh/util/table.scm b/module/hnh/util/table.scm index b318cf77..67125c8d 100644 --- a/module/hnh/util/table.scm +++ b/module/hnh/util/table.scm @@ -16,6 +16,7 @@ (tree-remove . table-remove) (tree->list . table->list) (tree? . table?) + (serialize-tree . serialize-table) (alist->tree . alist->table))) (define (symbolstring args) ...)) +(define (serialize-tree t) + `(-> (table) + ,@(fold (lambda (p done) + (cons `(table-put + (quote ,(car p)) + (quote ,(cdr p))) + done)) + '() + (tree->list t)))) + (define-type (tree-node printer: (lambda (t p) - (write - `(-> (table) - ,@(fold (lambda (p done) - (cons `(table-put ,(car p) ,(cdr p)) - done)) - '() - (tree->list t))) + ((@ (ice-9 pretty-print) pretty-print) + (serialize-tree t) p))) (key type: symbol?) value -- cgit v1.2.3