summaryrefslogtreecommitdiff
path: root/module/scheme
diff options
context:
space:
mode:
authorRob Browning <rlb@defaultvalue.org>2020-10-04 10:43:09 -0500
committerRob Browning <rlb@defaultvalue.org>2021-01-17 13:25:40 -0600
commitf1547e1d58ae369538bf4b6c8f12c6db1399e8c7 (patch)
treefd5fa2ec03f6b816400e86afaac2fc607696a955 /module/scheme
parent7a1cd29637749c5c8eb9ccff4354530ffb62d432 (diff)
downloadguile-f1547e1d58ae369538bf4b6c8f12c6db1399e8c7.tar.gz
(scheme base) member: return #f, not (), for no match
* module/scheme/base.scm (member): Match the r7rs requirement, as assoc already does. Thanks to Erik Dominikus for reporting the problem. Closes: 43304
Diffstat (limited to 'module/scheme')
-rw-r--r--module/scheme/base.scm7
1 files changed, 4 insertions, 3 deletions
diff --git a/module/scheme/base.scm b/module/scheme/base.scm
index b97259f18..20e280467 100644
--- a/module/scheme/base.scm
+++ b/module/scheme/base.scm
@@ -129,9 +129,10 @@
(unless (procedure? =)
(error "not a procedure" =))
(let lp ((ls ls))
- (if (or (null? ls) (= (car ls) x))
- ls
- (lp (cdr ls)))))))
+ (cond
+ ((null? ls) #f)
+ ((= (car ls) x) ls)
+ (else (lp (cdr ls))))))))
(define* (assoc x ls #:optional (= equal?))
(cond