summaryrefslogtreecommitdiffstats
path: root/alist-impl.scm
diff options
context:
space:
mode:
authorGravatar Arvydas Silanskas 2020-10-18 15:39:41 +0300
committerGravatar Arvydas Silanskas 2020-10-18 15:39:41 +0300
commitfbddc05232ef3b57ead31e789ad0b72ad53f00b7 (patch)
tree396c3614e240bb3fdad0c96585fd625db40549d0 /alist-impl.scm
parentremove old test file (diff)
alist dict predicate check only first element; plist and alist size remove unique key check
Diffstat (limited to 'alist-impl.scm')
-rw-r--r--alist-impl.scm10
1 files changed, 4 insertions, 6 deletions
diff --git a/alist-impl.scm b/alist-impl.scm
index 8f832dc..fab350d 100644
--- a/alist-impl.scm
+++ b/alist-impl.scm
@@ -1,7 +1,9 @@
(define (register-alist!)
(define (alist? l)
- (and (list? l) (every pair? l)))
+ (and (list? l)
+ (or (null? l)
+ (pair? (car l)))))
(define (alist-map! proc alist)
(map
@@ -50,11 +52,7 @@
(else (handle-failure))))
(define (alist-size alist)
- (define keys (map car alist))
- (define (fold-proc el set)
- (lset-adjoin equal? set el))
- (define key-set (fold fold-proc '() keys))
- (length key-set))
+ (length alist))
(define (alist-foreach proc alist)
(define (proc* e)