diff --git a/lib/srfi/229.sld b/lib/srfi/229.sld index 3018da15..b19589c2 100644 --- a/lib/srfi/229.sld +++ b/lib/srfi/229.sld @@ -22,6 +22,7 @@ (and (procedure? f) (let ((vars (procedure-vars f))) (and (vector? vars) + (> (vector-length vars) 1) (eq? procedure-tag-object (vector-ref vars (- (vector-length vars) 1))))))) (define (procedure-tag f) diff --git a/lib/srfi/229/test.sld b/lib/srfi/229/test.sld index 754f3f9b..be3408c2 100644 --- a/lib/srfi/229/test.sld +++ b/lib/srfi/229/test.sld @@ -15,6 +15,7 @@ (x) (* x x))) (test-assert (procedure/tag? f)) + (test-not (procedure/tag? (lambda (x) (* x x)))) (test 9 (f 3)) (test 42 (procedure-tag f)) (test-not (eqv? f f*))