# 6.090 IAP '05 - Homework 1

Assigned Monday January 10th.
Due 10am Tuesday January 11th.
Submit a print-out of your .scm file. You can't print directly from MITScheme. Instead, save the file and open it in notepad, then print from there. Should you encounter difficulty printing, the file may be emailed to bpe-staff@mit.edu.

## Problem 1: Syntax

1. Write 3 different self-evaluating expressions.
2. Write 3 different name expressions.
3. List all the special forms that were presented in lecture.

## Problem 2: Evaluation

For each of the following expressions:

1. Write the type of the expression.
2. Write down the value you expect the expression to evaluate to. If you believe the expression evaluates to an error, write "error". If the expression evaluates to an unspecified value, write whatever you want!
3. Evaluate the expression in MITScheme and copy over the resulting value.

    42

    0000

    "yar!"

    (* 6 9)

    "(+ 2 3)"

    (/ 1 0)

    (define red 44)

    (define green 43)

    (- red green)

    (define blue green)

    (define purple (+ blue green))

    (green + 5)

    ((if (< purple green) + -)
     (if (> purple green) red blue)
     7)

    (define op *)

    op

    (define * 3)

    op

    (op * green)

    (* * *)

    (define * op)

    (op op *)

    (if "false" (if (not "true") 3 4) 5)

## Problem 3: Define X

Do problem 4 from the lecture handout.

## Problem 4: Primitive Procedures

Do problem 5 from the lecture handout.