(define x 5) (define (square x) (* x x)) ; (define sq (lambda (x) (* x x))) ; (define (hen_na_square x) ; (begin (set! x (* x x)) ; x)) (define (factorial n) (if (= n 0) 1 (* n (factorial (- n 1))))) (define (hen_na_square x) (set! x (* x x)) x) (define (bar x) (call/cc (lambda (k) (+ 100 (if (= x 0) 1 (k x)))))) (define (multlist0 xs) (if (null? xs) 1 (begin (display (car xs)) ; (display " ") ; (* (car xs) (multlist0 (cdr xs)))))) (define (multlist xs) (call/cc (lambda (k) (define (aux xs) (if (null? xs) 1 (if (= 0 (car xs)) (k 0) (begin (display (car xs)) ; (display " ") ; (* (car xs) (aux (cdr xs))))))) (aux xs)))) ; (multlist '(1 2 3 4 5 6)) ; (multlist '(1 2 3 0 5 6)) ; (multlist '(0 2 3 4 5 6)) (define (increase n k) (if (> n 10) '() (begin (display " i:") (display n) (increase (+ n 1) (call/cc k))))) (define (decrease n k) (if (< n 0) '() (begin (display " d:") (display n) (decrease (- n 1) (call/cc k))))) ; try ; (increase 0 (lambda (k) (decrease 10 k))) (define (yinyang) (let ((yin ((lambda (cc) (display "@") cc) (call/cc (lambda (c) c))))) (let ((yang ((lambda (cc) (display "*") cc) (call/cc (lambda (c) c)))) ) (yin yang)))) ; try ; (yinyang)