diff options
| author | 2020-10-18 15:39:41 +0300 | |
|---|---|---|
| committer | 2020-10-18 15:39:41 +0300 | |
| commit | fbddc05232ef3b57ead31e789ad0b72ad53f00b7 (patch) | |
| tree | 396c3614e240bb3fdad0c96585fd625db40549d0 /alist-impl.scm | |
| parent | remove 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.scm | 10 |
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) |
