schanzer/wescheme2012 — pull request #1 by danking (2014-02-12 06:22:36+00:00)
Title: Fix quasiquoted expr desugaring

I believe I have quasiquoting working properly.

I checked the examples from the Racket site:
![screen shot 2014-02-12 at 1 18 55 am](https://f.cloud.github.com/assets/106194/2145749/d85c0950-93ad-11e3-82f1-36e46449aea1.png)

For the first example, the desugarer produces:

```racket
(append (list '1) (list (append (list 'quasiquote) (list (append (list 'unquote) (list (append (list '+) (list '1) (list (+ 2 3)))))))) (list '4))
```
and the second example:
```racket
(append (list '1) (list (append (list 'quasiquote) (list (append (list 'quasiquote) (list (append (list 'quasiquote) (list (append (list 'unquote) (list (append (list 'unquote-splicing) (list (append (list 'unquote) (list (+ 1 2)))))))))))))) (list '4))
```
Evaluating these in Racket verifies that the result is as expected.

```racket
danking@spock # racket
Welcome to Racket v5.90.0.10.
> (append (list '1) (list (append (list 'quasiquote) (list (append (list 'unquote) (list (append (list '+) (list '1) (list (+ 2 3)))))))) (list '4))
'(1 `,(+ 1 5) 4)
> (append (list '1) (list (append (list 'quasiquote) (list (append (list 'quasiquote) (list (append (list 'quasiquote) (list (append (list 'unquote) (list (append (list 'unquote-splicing) (list (append (list 'unquote) (list (+ 1 2)))))))))))))) (list '4))
'(1 ```,,@,3 4)
```