18 lines
887 B
TeX
18 lines
887 B
TeX
\begin{itemizep}
|
|
\item forget about imperative, procedural, OOP; forget about any programming language
|
|
\item think in types!
|
|
\begin{itemizep}
|
|
\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{itemizep}
|
|
\item think abstract!
|
|
\begin{itemizep}
|
|
\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{itemizep}
|
|
\item solve atomic parts of general problems and combine them into greater solutions
|
|
\item don't be afraid of recursion!
|
|
\end{itemizep} |