haskell-lectures/VL1/content/VL1_what_does_pure_mean.tex
2015-04-23 02:06:32 +02:00

19 lines
1.2 KiB
TeX

\emph{\ifger{Referenzielle Transparenz}{Referential transparency}}, \ifger{also}{as in}:
\slidep
\begin{itemizep}
\item \ifger{alles (Variablen, Datenstrukturen)}{everything (variables, data structures...)} \ifger{ist}{is} \emph{immutable}
\item \ifger{Ausdrücke haben niemals Seiteneffekte (Erinnerung: mathematische Funktionen)}{expressions never have side-effects (remember: mathematical functions)}
\item \ifger{gleiche Eingabe}{same input} $\mapsto$ \ifger{gleiche Ausgabe}{same output}... \emph{\ifger{immer}{always}}!
\item \ifger{wir können eine Funktion mit ihrem (Rückgabe-)Wert ersetzen... was passiert, wenn wir das in C oder java tun? (Erinnerung:}{replace a function with it's (return) value? Yes. What happens in C or java if you do that? Remember} \cppinline{void pop();}\ifger{)}{?}
\end{itemizep}
\slidep
\vspace{\baselineskip}
\ifger{mögliche Vorteile?}{possible benefits?}
\begin{itemizep}
\item \ifger{Parallelisierung}{parallelism}
\item \ifger{Denken in Gleichungen und hohes Refactoring-Potenzial}{equational reasoning and refactoring}
\item \ifger{weniger Bugs!}{less bugs!}
\end{itemizep}
\slidep
\vspace{\baselineskip}
\ifger{Frage:}{Question:} call-by-value? call-by-reference? call-by-need?