\documentclass[12pt]{article}

\usepackage{times,mathptm}
\pagestyle{myheadings}



\parindent 0in
\setlength{\parindent}{0in}
\setlength{\parskip}{1ex}

\topmargin -0.1in \headheight\baselineskip
\textheight 8.5in         % 1in top and bottom margin
\textwidth 6.5in        % 1in left and right margin
\oddsidemargin 0in
\evensidemargin 0in




\usepackage{amsmath}
\usepackage{amssymb}


% \setlength{\itemsep}{0pt}

\markright{\footnotesize CS 451 Programming Paradigms, Spring 2001}

\begin{document}

\section*{Project~3: Programming in ML, Scheme, and the $\lambda$-calculus --- due Friday 4 May}

Total number of points available on this project is 200. Full credit
is equivalent to 0 points. In other words, this project is entirely optional.

In Project~1 you implemented an interpreter for pure $\lambda$-calculus in ML.

Tasks:

\begin{enumerate}

\item 
Translate (compile) a subset of Scheme into the $\lambda$-calculus, and evaluate
using the reducer from Project~1 (which you may modify if you find it convenient
to do so).

This subset should include at the very least the following:
    \begin{itemize}
    \item \texttt{\textbf{(define ...)}}
    \item \texttt{\textbf{(lambda ...)}}
    \item \texttt{\textbf{(let ...)}}
    \item \texttt{\textbf{(letrec ...)}}
    \item \texttt{\textbf{(+ ...)}}
    \item \texttt{\textbf{(- ...)}}
    \item \texttt{\textbf{(eq? ...)}}
    \item \texttt{\textbf{(cons ...)}}
    \item \texttt{\textbf{(car ...)}}
    \item \texttt{\textbf{(cdr ...)}}
    \item \texttt{\textbf{(list ...)}}
    \end{itemize}

\item
Test and debug on various Scheme programs you wrote in CS257, suitably modified
to use only the Scheme subset you implement here.

\item
Report your observations about the speed of various phases, 
ease of implementation,
etc.


\end{enumerate}

\end{document}

