|
|
@@ -242,13 +242,23 @@ Let's reiterate. Haskell is: |
|
|
|
\end{frame} |
|
|
|
|
|
|
|
\begin{frame} |
|
|
|
\frametitle{Types, types, types} |
|
|
|
\begin{itemize} |
|
|
|
\frametitle{How to think haskell?} |
|
|
|
\begin{itemize}[<+->] |
|
|
|
\item think in types! |
|
|
|
\begin{itemize}[<+->] |
|
|
|
\item don't be afraid of type errors |
|
|
|
\item let the type-checker do the work for you (does this function do what I think it does?) |
|
|
|
\item understand functions just by looking at their type signature? |
|
|
|
\end{itemize} |
|
|
|
\item think abstract! |
|
|
|
\begin{itemize}[<+->] |
|
|
|
\item don't repeat yourself! |
|
|
|
\item "develop a solution space, rather than an individual solution" -- Ralf Hinze |
|
|
|
\item "imagine a graph, rather than a single path" -- Ralf Hinze |
|
|
|
\item "first solve a more general problem, then extract the interesting bits and pieces by transforming the general program into more specialised ones" -- Ralf Hinze |
|
|
|
\end{itemize} |
|
|
|
\item solve atomic parts of general problems and combine them into greater solution |
|
|
|
\end{itemize} |
|
|
|
\end{frame} |
|
|
|
|
|
|
|
\begin{frame}[fragile] |
|
|
|