\subsection{Paper organistation} \label{sec:intro:org} In this paper we present different advantages of working with imperative code in a functional style. We do this by means of a case study, an interpreter of the language While~\citep{proganal}. We will describe this example language briefly in \autoref{sec:intro:while}. Before discussing our interpreter, we will discuss basic definition that will be helpful in \autoref{sec:predefs}. Since extensive research has already been done into lexing and parsing \citep[see e.g.][]{yard}, will skip these steps and assume we already have an abstract syntax tree (AST). This AST is described in \autoref{sec:ast}. In \autoref{sec:eval} we will discuss different possibilities of evaluating mathematical expressions. Finally, in \autoref{sec:interp} we will propose a While interpreter. We finish by articulating the advantages of functional interpretation in \autoref{sec:conclusions}. \autoref{sec:ftypes} lists the functions and types that the reader is supposed to know.