TU Wien:Funktionale Programmierung VU (Knoop)/Prüfung 2022-03-04 (Lösungsvorschlag)/Prüfung 2023-01-19 (Lösungsvorschlag)

Aus VoWi
Zur Navigation springen Zur Suche springen

Für die Aufgabenstellungen, siehe [1]

Aufgabe 1 (2*0.5+10+14 = 15 Punkte)[Bearbeiten | Quelltext bearbeiten]

1.1:

a) E 7 (E 9 (E 9 Ende))

b) E "Viel" (E "Er" (E "Folg" (E "!" Ende)))

1.2:

streiche :: Ord a => (Liste a) -> (Liste a) -> (Liste a)
streiche Ende _ = Ende
streiche (E x xs) ys = if x `myelem` ys 
    then streiche xs ys else E x (streiche xs ys)


myelem :: Ord a => a -> (Liste a) -> Bool
myelem _ Ende = False
myelem x (E y ys) = if x == y then True else myelem x ys

1.3:

streiche prüft mittels der funktion myelem, welche elemente aus der ersten Liste nicht in der Zweiten vorkommen und springt mittels rekusrion von Element zu Element.