From b542b7e27bdb335bee812900d0c17a565a0d7dfb Mon Sep 17 00:00:00 2001 From: Arun Isaac Date: Wed, 16 Mar 2022 15:39:16 +0530 Subject: tissue: Deduplicate keywords in hash table. * tissue/issue.scm (hashtable-append!): Deduplicate after appending new values. --- tissue/issue.scm | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/tissue/issue.scm b/tissue/issue.scm index 7a5b6ff..59e7ee9 100644 --- a/tissue/issue.scm +++ b/tissue/issue.scm @@ -66,10 +66,14 @@ (define (hashtable-append! hashtable key new-values) "Append NEW-VALUES to the list of values KEY is associated to in -HASHTABLE. If KEY is not associated to any value in HASHTABLE, assume -it is associated to the empty list." - (hashtable-update! - hashtable key (cut append <> new-values) '())) +HASHTABLE. Deduplicate the resulting list if necessary. If KEY is not +associated to any value in HASHTABLE, assume it is associated to the +empty list." + (hashtable-update! hashtable + key + (lambda (old-values) + (delete-duplicates (append old-values new-values))) + '())) (define (comma-split str) "Split string at commas, trim whitespace from both ends of the split -- cgit v1.2.3