Aspekte Funktionaler Programmierung


\begin{frame}[fragile,environment=slide]
\frametitle{Warum sind Funktionen wicht...
...plicated code'',
refactoring \lq\lq introduce method''.
\end{itemize}\par\end{frame}


\begin{frame}[fragile,environment=slide]
\frametitle{Übersicht}
\par
\begin{item...
...onen mit Initialisierung)
\item
Bedarfs-Auswertung
\end{itemize}\par\end{frame}


\begin{frame}[fragile,environment=slide]
\frametitle{Funktionen als Daten}
\par
...
...in{verbatim}map ( \ f -> f 3 ) [ sin, cos, log ]\end{verbatim}
\par\end{frame}


\begin{frame}[fragile,environment=slide]
\frametitle{Funktionen als Daten (II)}
...
...m
als (einzige) Methode hat,
\par
vgl. interface ActionListener
\par\end{frame}


\begin{frame}[fragile,environment=slide]
\frametitle{Typsysteme}
\par
\begin{ite...
... habe dynamisches Typsystem;\\
ML, Haskell, Mercury statisches.
\par\end{frame}


\begin{frame}[fragile,environment=slide]
\frametitle{Deklarative Programmierung}...
...
\item
vgl. refactoring \lq\lq introduce state object''
\end{itemize}\par\end{frame}


\begin{frame}[fragile,environment=slide]
\frametitle{Eifrige (eager) Auswertung}...
... x*fac(x-1), 1);
}\end{verbatim}
\par
(welche Lösung/Hack in C?)
\par\end{frame}


\begin{frame}[fragile,environment=slide]
\frametitle{Bedarfs-Auswertung (faul, l...
...
(es gibt eine Nebenwirkungen dieser Auswertungen)
\end{itemize}\par\end{frame}


\begin{frame}[fragile,environment=slide]
\frametitle{Unendliche Datenstrukturen}...
...en auf Maschinenzahlen sind strikt
(erfordern ausgewertete Argumente)\end{frame}

\begin{frame}[fragile,environment=slide]
\frametitle{Producer/Transformer/Consum...
...gramm
genauso wenig Platz wie von Hand umgeschriebenes
\end{itemize}\end{frame}

\begin{frame}[fragile,environment=slide]
\frametitle{Programmtransformationen}
\...
...{verbatim}
(und zwar falschherum, würde jeder Algebraiker sagen)
\par\end{frame}

\begin{frame}[fragile,environment=slide]
\frametitle{Fktl. Modellierg. von Zusta...
...ert),
das garantiert Nebenwirkungsfreiheit und damit Sicherheit.
\par\end{frame}


\begin{frame}[fragile,environment=slide]
\frametitle{Zusammenfassung}
\par
\begi...
...mein akzeptiertes abstraktes Collections-Framework)
\end{itemize}\par\end{frame}



Johannes Waldmann 2007-01-23