\emph{Referential transparency}, as in:
\slidep
\begin{itemizep}
\item everything (variables, data structures...) is \emph{immutable}
\item expressions never have side-effects (remember: mathematical functions)
\item same input $\mapsto$ same output... \emph{always}!
\item replace a function with it's (return) value? Yes. What happens in C or java if you do that? Remember \cppinline{void pop();}?
\end{itemizep}
\slidep
\vspace{\baselineskip}
possible benefits?
\begin{itemizep}
\item parallelism
\item equational reasoning and refactoring
\item less bugs!
\end{itemizep}
\slidep
\vspace{\baselineskip}
Question: call-by-value? call-by-reference? call-by-need?