Der filter-Operator
Die Funktion konzipieren
Die Signatur und das Verhalten des filter
-Operators lassen sich in einem Elm-Dialog ermitteln.
> List.filter
<function> : (a -> Bool) -> List a -> List a
> List.filter (\ x -> x > 0 ) [2, -4.1, 6, 0, -5]
[2,6] : List Float
Das Black-Box-Diagramm verdeutlicht diese Eigenschaften des filter
-Operators.
Unser Ziel ist es, einen myFilter
-Operator zu definieren, der sich genauso verhält wie der vordefinierte filter
-Operator.
Die Implementierung erfolgt mit Hilfe von Rekursion.
module Listenoperatoren exposing (..)
myFilter: (a -> Bool) -> List a -> List a
myFilter funktion liste =
case liste of
[] ->
...
e::r ->
if ... then ... else ...
> import Listenoperatoren exposing (..)
> myFilter (\ x -> x > 0 ) [2, -4.1, 6, 0, -5]
[2,6] : List Float
Aufgabe 1
Ergänze die fehlenden Teile in der Implementierung.
Quellen
- [1]: Black-box-Diagramm List.filter - Urheber: KB - Lizenz: inf-schule.de
- [2]: Black-box-Diagramm myFilter - Urheber: KB - Lizenz: inf-schule.de