let-bind assq, etc for correct object-name
This commit is contained in:
parent
4aabaeb7af
commit
fab332a409
|
@ -164,21 +164,26 @@
|
||||||
(bad-item who a orig-l)))]
|
(bad-item who a orig-l)))]
|
||||||
[(null? l) #f]
|
[(null? l) #f]
|
||||||
[else (bad-list who orig-l)])))
|
[else (bad-list who orig-l)])))
|
||||||
(values
|
(let ([assq
|
||||||
(lambda (x l)
|
(lambda (x l)
|
||||||
(assoc-loop 'assq x l eq?))
|
(assoc-loop 'assq x l eq?))]
|
||||||
(lambda (x l)
|
[assv
|
||||||
(assoc-loop 'assv x l eqv?))
|
(lambda (x l)
|
||||||
(case-lambda
|
(assoc-loop 'assv x l eqv?))]
|
||||||
[(x l) (assoc-loop 'assoc x l equal?)]
|
[assoc
|
||||||
[(x l is-equal?)
|
(case-lambda
|
||||||
(unless (and (procedure? is-equal?) (procedure-arity-includes? is-equal? 2))
|
[(x l) (assoc-loop 'assoc x l equal?)]
|
||||||
(raise-type-error 'assoc "procedure (arity 2)" is-equal?))
|
[(x l is-equal?)
|
||||||
(assoc-loop 'assoc x l is-equal?)])
|
(unless (and (procedure? is-equal?)
|
||||||
(lambda (f l)
|
(procedure-arity-includes? is-equal? 2))
|
||||||
(unless (and (procedure? f) (procedure-arity-includes? f 1))
|
(raise-type-error 'assoc "procedure (arity 2)" is-equal?))
|
||||||
(raise-type-error 'assf "procedure (arity 1)" f))
|
(assoc-loop 'assoc x l is-equal?)])]
|
||||||
(assoc-loop 'assf #f l (lambda (_ a) (f a)))))))
|
[assf
|
||||||
|
(lambda (f l)
|
||||||
|
(unless (and (procedure? f) (procedure-arity-includes? f 1))
|
||||||
|
(raise-type-error 'assf "procedure (arity 1)" f))
|
||||||
|
(assoc-loop 'assf #f l (lambda (_ a) (f a))))])
|
||||||
|
(values assq assv assoc assf))))
|
||||||
|
|
||||||
;; fold : ((A B -> B) B (listof A) -> B)
|
;; fold : ((A B -> B) B (listof A) -> B)
|
||||||
;; fold : ((A1 ... An B -> B) B (listof A1) ... (listof An) -> B)
|
;; fold : ((A1 ... An B -> B) B (listof A1) ... (listof An) -> B)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user