Advertisement
Guest User

Untitled

a guest
May 18th, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Racket 0.64 KB | None | 0 0
  1. [`(- ,v)
  2.      (define-values (flat-exp flat-assigns flat-all-vars) (flatten v))
  3.      (define new-var (gensym `tmp))
  4.      (define new-assign `(assign ,new-var (- ,flat-exp)))
  5.      (values new-var (append flat-assigns (list new-assign)) (append flat-all-vars (list new-var)))]
  6.  
  7.     [`(+ ,v1 ,v2)
  8.      (define-values (LHS-exp LHS-assigns LHS-vars) (flatten v1))
  9.      (define-values (RHS-exp RHS-assigns RHS-vars) (flatten v2))
  10.      (define new-var (gensym `tmp))
  11.      (define new-assign `(assign ,new-var (+ ,LHS-exp ,RHS-exp)))
  12.      (values new-var (append LHS-assigns RHS-assigns (list new-assign)) (append LHS-vars RHS-vars (list new-var)))]
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement