**Due: Tuesday, Sept 6th by 11:59 PM**

In this assignment you will practice using Scheme expressions and values.

Use Racket to type expressions and see
the resulting values. Make sure you use **#lang eopl**.

Record your answers in a plain text file. (Suggestion: use Notepad++.)

**Question 1 [20 points]**: What values are the results of the following Scheme expressions?

Expression (+ 2 (* 3 4)) (* 2 (+ 3 4)) (integer? 4/5) (* 4/5 5) (integer? (* 4/5 5)) (cons 'go '()) (cons 'go (cons 'west '())) (cons 'west (cons 'go '())) (cons 'go 'west) (pair? (cons 'go 'west)) (list? (cons 'go 'west))

**Question 2 [40 points]**: Create expressions which, when evaluated, will result
in the following values. **Important**: you may not use quoting
except to specify literal symbols (e.g., **'a**) and the empty list
(**'()**).

Note that values of the form **#(** ... **)** are vectors.

Value a (a) (a b c) (a (b) c) (((a))) ((a) (b) (c)) #(a b c) #(#(a b) #(c)) #((a b) (c)) (a #(b) c)

In Questions 3-6, there is a pair of expressions and
an expected value for each expression.
In each expression, a variable **f** is used.

For each pair of expressions, give a definition of **f**
that will cause each expression to evaluate to its expected value.

For example:

Expression Expected value (f 2 3) 5 (f 4 5) 9

A definition of **f** that causes the expressions to yield their expected
values is

(define f (lambda (x y) (+ x y)))

**Question 3 [10 points]**:

Expression Expected value (f '(a b c)) b (f '(1 2 3)) 2

**Question 4 [10 points]**:

Expression Expected value (f '(a b)) (b a) (f '(17 42)) (42 17)

**Question 5 [10 points]**:

Expression Expected value (f car '(a b)) a (f cdr '(1 2 3)) (2 3)

**Question 6 [10 points]**:

Expression Expected value ((f 2) 3) 5 ((f 5) 6) 11

## Submitting

Submit your answers as a **plain text file** to Marmoset as **assign1**:

https://cs.ycp.edu:8443/

Do not submit a Word or OpenOffice document.

**IMPORTANT**: after uploading, you should download a copy of your submission and
double-check it to make sure that it contains the correct file(s). You are
responsible for making sure your submission is correct. You may receive a grade
of 0 for an incorrectly submitted assignment.