Advertisement
Guest User

Untitled

a guest
Aug 24th, 2018
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Racket 1.59 KB | None | 0 0
  1. #lang racket
  2.  
  3. (for/sum ([i (in-range 100)])
  4.   (* i i))
  5.  
  6. ;Transforms into:
  7.  
  8. (module anonymous-module racket
  9.   (#%module-begin
  10.    (module configure-runtime '#%kernel (#%module-begin (#%require racket/runtime-config) (#%app configure (quote #f))))
  11.    (#%app
  12.     call-with-values
  13.     (lambda ()
  14.       (let-values ([(start) (quote 0)] [(end) (quote 100)] [(inc) (quote 1)])
  15.         (if (#%app variable-reference-from-unsafe? (#%variable-reference))
  16.           (#%app void)
  17.           (let-values () (#%app check-range start end inc)))
  18.         (#%app
  19.          (letrec-values (((for-loop)
  20.                           (lambda (result pos)
  21.                             (if (#%app unsafe-fx< pos end)
  22.                               (let-values ([(i) pos])
  23.                                 (if (quote #t)
  24.                                   (let-values ([(result)
  25.                                                 (let-values (((result) result))
  26.                                                   (let-values ([(result)
  27.                                                                 (let-values () (#%app + result (let-values () (#%app * i i))))])
  28.                                                     (#%app values result)))])
  29.                                     (if (if (quote #t) (#%app not (quote #f)) (quote #f))
  30.                                       (#%app for-loop result (#%app unsafe-fx+ pos inc))
  31.                                       result))
  32.                                   result))
  33.                               result))))
  34.            for-loop)
  35.          (quote 0)
  36.          start)))
  37.     print-values)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement