Übungen
Aufgabe 1
Im folgenden REPL-Dialog fehlen die Ergebnisse.
> verdoppelt x = 2*x
<function> : number -> number
> List.map verdoppelt [11,2,17,45,32]
...
> gerade x = (modBy 2 x == 0)
<function> : Int -> Bool
> List.map gerade [3,7,12,4,5,8]
...
> List.filter gerade [3,7,12,4,5,8]
...
> dupliziert s = s ++ s
<function> : appendable -> appendable
> List.map dupliziert ["hi","ho","hu"]
...
> enthaelt_a wort = String.contains "a" wort
<function> : String -> Bool
> List.map enthaelt_a ["Hund","Katze","Maus","Affe"]
...
Stelle Vermutungen auf, was an Stelle der drei Punkte jeweils erscheint. Überprüfe, indem du den Dialog selbst führst.
Aufgabe 2
Im folgenden REPL-Dialog fehlen die Ergebnisse.
> add x y = x+y
<function> : number -> number -> number
> List.foldr add 0 [0,1,2,3,4,5]
...
> mul x y = x*y
<function> : number -> number -> number
> List.foldr mul 1 (List.range 1 5)
...
> List.foldr (++) "" ["a","b","c"]
...
> List.foldl (++) "" ["a","b","c"]
...
> List.foldr (&&) True [3>1,4<6,2<=2]
...
> List.foldr (::) [] ['a','b','c']
...
Stelle Vermutungen auf, was an Stelle der drei Punkte jeweils erscheint. Überprüfe, indem du den Dialog selbst führst.
Aufgabe 3
Die Kursarbeit ist schlecht ausgefallen. Alle Noten sollen um 1 Punkt erhöht werden.
Signatur:
plus1: List Int-> List Int
Beispiele:
plus1 [2,5,7,4,10,12,3] -> [3,6,8,5,11,13,4]
Entwickle eine Funktionsdefinition für die Funktion plus1
. Nutze den map
-Operator.
Aufgabe 4
Die Kursarbeit ist schlecht ausgefallen. Es sollen alle Noten zusammengestellt werden, die unter 4 Punkte betragen.
Signatur:
unter4: List Int-> List Int
Beispiele:
unter4 [2,5,7,4,0,10,1,12,3] -> [2,0,1,3]
Entwickle eine Funktionsdefinition für die Funktion unter4
. Nutze den filter
-Operator.
Aufgabe 5
Die Ergebnisse von Lottoziehungen werden mit Hilfe von Listen verwaltet.
module Lottozahlen exposing (..)
lottoziehungen: List (List Int)
lottoziehungen = [
[3,6,13,23,40,41],
[5,6,20,25,44,49],
[10,21,22,23,39,41],
[1,11,17,45,47,48]]
Entwickle eine Funktion, mit der man ermitteln kann, wie oft eine vorgegebene Zahl in den Ziehungen vorgekommen ist. Löse ohne Rekursion.