haskell-lectures/VL2/content/VL2_filter1.tex

23 lines
881 B
TeX

\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?}