## Suggested Homework #1 (for Quiz #1 on 01/17/07)

Suppose that the following list of bindings was entered into the OCaml interpreter. For each binding, the interpreter responds with either: (a) the name of the variable, its value, and its type, as shown for the first binding in italics , or (b) a type error.
Fill in the blanks ("...") with how the interpreter would respond if each of the bindings was entered in the sequence shown below. Recall that if a type error occurs, then the variable binding does not happen. Note that you could just enter this sequence into the interpreter and see what happens, but this is a luxury you will not have during the quiz.

- let x = 2 ;;

val x = 2 : int;

- let x = 2 + 3 - 4.0 ;;

...

- let x = 2 + 3 ;;

...

- let x = "a" ;;

...

- let x = (x,3) ;;

...

- let (x,y) = x ;;

...

- let y = (x^"b" , y^"c") ;;

...

- let y = (x , y+3) ;;

...

- let a = [1;2] ;;

...

- let a = (0::a)@[1;2] ;;

...

- let i::t = a ;;

...

``` - let a = let x = 20 in let y = let x = 5 in x + x in x + y ;; - let b = let x = "ab" in let y = (let x = "cd" in x) ^ x in x ^ y ;; - let c = let x = 22 in x::y ;; ```