\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}. After describing While briefly in \autoref{sec:intro:while}, we will iteratively build our interpreter: the lexer in \autoref{sec:lexer}, the parser in \autoref{sec:parser} and the actual interpreter in \autoref{sec:interpreter}. As an intermezzo, in \autoref{sec:evaluation} we discuss different possibilities of evaluating mathematical expressions. Finally, in \autoref{sec:conclusions} we precisely articulate the advantages of functional interpretation.