diff options
author | Hugo Hörnquist <hugo@lysator.liu.se> | 2022-09-18 23:01:57 +0200 |
---|---|---|
committer | Hugo Hörnquist <hugo@lysator.liu.se> | 2022-09-18 23:01:57 +0200 |
commit | 326490cf13949b176708d517de491daff88a77ed (patch) | |
tree | 006fc47ae3d9a6a4f4d08a94193dbb7b9ec27fdc | |
parent | Add some items to TODO. (diff) | |
download | calp-326490cf13949b176708d517de491daff88a77ed.tar.gz calp-326490cf13949b176708d517de491daff88a77ed.tar.xz |
Add uniq to hnh/util.
Diffstat (limited to '')
-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 d2c0dd5f..3a2621d1 100644 --- a/module/hnh/util.scm +++ b/module/hnh/util.scm @@ -55,6 +55,12 @@ assq-ref-all assv-ref-all + uniqx + uniq + univ + uniqv + unique + vector-last ->string @@ -506,6 +512,19 @@ (define (assv-ref-all alist key) (ass%-ref-all alist key eqv?)) +(define (uniqx = lst) + (cond ((null? lst) lst) + ((null? (cdr lst)) lst) + ((and (pair? lst) + (= (car lst) (cadr lst))) + (uniqx = (cons (car lst) (cddr lst)))) + (else (cons (car lst) + (uniqx = (cdr lst)))))) + +(define (uniq lst) (uniqx eq? lst)) +(define (univ lst) (uniqx eqv? lst)) +(define (unique lst) (uniqx equal? lst)) + (define (vector-last v) |