2015-04-23 20:57:25 +00:00
\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:}
2015-04-19 22:32:50 +00:00
\begin { haskellcode}
filterEven :: [Int] -> [Int]
\end { haskellcode}
2015-04-23 20:57:25 +00:00
\ifger { Lösung?} { Solution?}
2015-04-19 22:32:50 +00:00
\pause
\begin { haskellcode}
filterEven :: [Int] -> [Int]
filterEven [] = []
filterEven (x:xs)
| even x = x : filterEven xs
| otherwise = filterEven xs
\end { haskellcode}
\pause
2015-04-23 20:57:25 +00:00
\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:}
2015-04-19 22:32:50 +00:00
\begin { haskellcode}
filterZero :: [Int] -> [Int]
filterZero [] = []
filterZero (x:xs)
| x == 0 = x : filterZero xs
| otherwise = filterZero xs
\end { haskellcode}
2015-04-23 20:57:25 +00:00
\ifger { Erneut: Fällt etwas auf?} { Again: do you notice something?}