Welcome to the CHICKEN Scheme pasting service
mapb1.scm added by sbwhitecap on Wed Feb 3 06:32:02 2016
(define mapb1 (lambda (proc lis) (letrec ((go (lambda (proc lis) (if (null? lis) lis (call-with-values (lambda () (proc (car lis))) (lambda (newcar brk) (if (eq? brk #t) (list newcar) (cons newcar (go proc (cdr lis)))))))))) (go proc lis)))) (define l (list 1 2 3 4 5 6 7 8 9 10)) (display (mapb1 (lambda (v) (if (= v 4) (values 42 #t) (values (+ v 1) #f))) l)) (newline)