|
- \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?
|