diff options
author | Hugo Hörnquist <hugo@lysator.liu.se> | 2022-03-17 20:28:48 +0100 |
---|---|---|
committer | Hugo Hörnquist <hugo@lysator.liu.se> | 2022-08-18 16:38:37 +0200 |
commit | 907931e62d154564089a2e88145d56afa68231fa (patch) | |
tree | 67a27bdc54b34a815eee12b76ceedf71c3c61e06 /module/hnh | |
parent | Up-prioritize api change for group-by. (diff) | |
download | calp-907931e62d154564089a2e88145d56afa68231fa.tar.gz calp-907931e62d154564089a2e88145d56afa68231fa.tar.xz |
Add uniq family of procedures.c-parser
Diffstat (limited to 'module/hnh')
-rw-r--r-- | module/hnh/util.scm | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/module/hnh/util.scm b/module/hnh/util.scm index 7509fc86..d5923e79 100644 --- a/module/hnh/util.scm +++ b/module/hnh/util.scm @@ -58,6 +58,11 @@ assq-ref-all assv-ref-all + uniq + univ + uniqv + unique + vector-last ->string @@ -543,6 +548,20 @@ (define (assv-ref-all alist key) (ass%-ref-all alist key eqv?)) +(define (unique% = lst) + (cond ((null? lst) lst) + ((null? (cdr lst)) lst) + ((and (pair? lst) + (= (car lst) (cadr lst))) + (uniq (cons (car lst) (cddr lst)))) + (else (cons (car lst) + (uniq (cdr lst)))))) + +(define (uniq lst) (unique% eq? lst)) +(define (uniqv lst) (unique% eqv? lst)) +(define univ uniqv) +(define (unique lst) (unique% equal? lst)) + (define (vector-last v) |