\ifger{Stellen wir uns vor wir wollen alle geraden Zahlen einer Liste und alle anderen nicht. Hier wäre die Typsignatur:}{Imagine we want to filter all even numbers of a list and throw away all others. I'll give you the type signature:} \begin{haskellcode} filterEven :: [Int] -> [Int] \end{haskellcode} \ifger{Lösung?}{Solution?} \pause \begin{haskellcode} filterEven :: [Int] -> [Int] filterEven [] = [] filterEven (x:xs) | even x = x : filterEven xs | otherwise = filterEven xs \end{haskellcode} \pause \ifger{Oder: wir filtern alle $0$en, damit wir sie später zählen können:}{Or: filter out all $0$'s, so we can count them later:} \begin{haskellcode} filterZero :: [Int] -> [Int] filterZero [] = [] filterZero (x:xs) | x == 0 = x : filterZero xs | otherwise = filterZero xs \end{haskellcode} \ifger{Erneut: Fällt etwas auf?}{Again: do you notice something?}