Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #lang racket
- (for/sum ([i (in-range 100)])
- (* i i))
- ;Transforms into:
- (module anonymous-module racket
- (#%module-begin
- (module configure-runtime '#%kernel (#%module-begin (#%require racket/runtime-config) (#%app configure (quote #f))))
- (#%app
- call-with-values
- (lambda ()
- (let-values ([(start) (quote 0)] [(end) (quote 100)] [(inc) (quote 1)])
- (if (#%app variable-reference-from-unsafe? (#%variable-reference))
- (#%app void)
- (let-values () (#%app check-range start end inc)))
- (#%app
- (letrec-values (((for-loop)
- (lambda (result pos)
- (if (#%app unsafe-fx< pos end)
- (let-values ([(i) pos])
- (if (quote #t)
- (let-values ([(result)
- (let-values (((result) result))
- (let-values ([(result)
- (let-values () (#%app + result (let-values () (#%app * i i))))])
- (#%app values result)))])
- (if (if (quote #t) (#%app not (quote #f)) (quote #f))
- (#%app for-loop result (#%app unsafe-fx+ pos inc))
- result))
- result))
- result))))
- for-loop)
- (quote 0)
- start)))
- print-values)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement