;; Evaluates each function in turn, immediately returning the first ;; non-#f result, or #f if no function returns a non-#f result. ; (define (or . fns) ; (let/cc k ; (foldl (lambda (fn _) ; (let/cc k2 ; ((lambda (x) ; ((if x k k2) x)) ; (fn)))) ; #f ; fns)) #S(#="lambda" #( #i"foldl.rla" #S(#="template" ; (lambda (fn _) ; (let/cc k2 ; ((lambda (x) ; ((if x k2 k) x)) ; (fn)))) #( #S(#="template" ; (lambda (x) ; ((if x k2 k) x)) #(#f) "\x40\xff" ; i0 k 1 "\x00\x80\x03\xfd\; (set! f0 (car argv)) \x80\x80\x40\x41"; (set! f0 (if f0 i0 i1)) 0x80 ; f0 0xfd ; argv 0x01 ; g1 0x01 ; g1 ) ) "\xff" ; k 2 "\x00\x80\x03\xfd\; (set! f0 (car argv)) \x00\x81\x1b\x01"; (set! f1 (lambda g1)) 0x80 ; f0 0x00 ; nil 0xfe ; ctx 0x81 ; f1 ) #f ) #() 2 "\x02\x80\xfd\x00\; (set! f0 (cons argv nil)) \x02\x80\x03\x80\; (set! f0 (cons g3 f0)) \x00\x81\x1b\x02\; (set! f1 (lambda g2)) \x02\x80\x81\x80"; (set! f0 (cons f1 f0)) 0x01 ; g1 0x80 ; f0 0xfe ; ctx 0xff ; k ) ; vim:set syntax= sw=2 expandtab: