diff --git a/lib/srfi/26.sld b/lib/srfi/26.sld index b2350211..ad7b46e1 100644 --- a/lib/srfi/26.sld +++ b/lib/srfi/26.sld @@ -16,7 +16,7 @@ ((%cut #t (params ...) (args ...) x . rest) (let ((tmp x)) (%cut #t (params ...) (args ... tmp) . rest))) ((%cut #f (params ...) (args ...) x . rest) - (%cut #t (params ...) (args ... x) . rest)))) + (%cut #f (params ...) (args ... x) . rest)))) (define-syntax cut (syntax-rules () ((cut args ...) (%cut #f () () args ...)))) (define-syntax cute diff --git a/tests/srfi-26-tests.scm b/tests/srfi-26-tests.scm new file mode 100644 index 00000000..5686134e --- /dev/null +++ b/tests/srfi-26-tests.scm @@ -0,0 +1,16 @@ + +(import (scheme base) (srfi 26) (chibi test)) + +(test-begin "srfi-26") + +(let ((x 'orig)) + (let ((f (cute list x))) + (set! x 'wrong) + (test '(orig) (f)))) + +(let ((x 'wrong)) + (let ((f (cut list x))) + (set! x 'right) + (test '(right) (f)))) + +(test-end)