X-Git-Url: https://git.martlubbers.net/?a=blobdiff_plain;f=deliverables%2Fp2%2Fp2.tex;h=a3fca20f9598cffe0fa94e09a6b7311cd79ef977;hb=158fb0cf298aaae42c8460f92bb7d797d5def9bd;hp=09d75d28cf2981765ce4e1b330924faca0d3c02e;hpb=097f4bec1e2f95e2926530fdd1dbee177a9caebc;p=cc1516.git diff --git a/deliverables/p2/p2.tex b/deliverables/p2/p2.tex index 09d75d2..a3fca20 100644 --- a/deliverables/p2/p2.tex +++ b/deliverables/p2/p2.tex @@ -130,7 +130,6 @@ flop(n, l) :: Int -> [Int] -> Bool { \begin{itemize} \item Mutual recursion is allowed and type checked, however inference is not complete. - \pause \begin{CleanCode} flip(n, l) { if( n <= 0 ) {return l;} @@ -165,6 +164,36 @@ flop(n, l) :: Int -> [Int] -> HSWdn { \end{itemize} \end{frame} +\begin{frame}[fragile] + \frametitle{But wait, there is more!} + \framesubtitle{Trouble that is} + \begin{itemize} + \item Polymorphism is not working great either. + \begin{CleanCode} +id(x) :: a -> a { + return x; +} + \end{CleanCode} + \pause + \item Is typed fun, but when we introduce: + \begin{CleanCode} +var x = id(5); +var y = id(True); + \end{CleanCode} + \pause + \begin{CleanCode} +2:12 SemError: Cannot unify types. Expected: Int. Given: Bool + \end{CleanCode} + \end{itemize} +\end{frame} + +\begin{frame}[fragile] + \frametitle{But wait, there is more!} + \framesubtitle{Trouble that is} + + \begin +\end{frame} + % - Can functions that are defined later in a file call earlier defined functions? % - Can local variables be defined in terms of other local variables? % - How do you deal with assignments?