;; a loop the hard way

(define (cc) ;; current continuation
  (call-with-current-continuation (lambda (k) k)))

(define (sum-1-to-n n)
  (let ( (sum 0) )
    (let ( (pitch (cc)) )
       (if (= n 0)
           (pitch (lambda (any) sum))
           (begin 
              (set! sum (+ sum n))
              (set! n (- n 1))
              (pitch pitch))
) ) ) )
