From 1a9518ec04503b82830445eccafd71aadb8c0dbd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hugo=20H=C3=B6rnquist?= Date: Wed, 1 Apr 2020 20:59:45 +0200 Subject: Add group-by. --- module/util.scm | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'module') diff --git a/module/util.scm b/module/util.scm index 8ccfa27e..d4c318a3 100644 --- a/module/util.scm +++ b/module/util.scm @@ -398,6 +398,12 @@ (assq-set! alist k (append v (or o '()))))) (copy-tree a) b)) +(define-public (group-by proc lst) + (let ((h (make-hash-table))) + (for value in lst + (let ((key (proc value))) + (hash-set! h key (cons value (hash-ref h key '()))))) + (hash-map->list list h))) (define-macro (use-modules* . forms) `(use-modules -- cgit v1.2.3