• Keine Ergebnisse gefunden

Aufgabe 1. Gegeben sei der Typ Nat aus der Vorlesung, definiert als data Nat = Zero | Succ Nat

N/A
N/A
Protected

Academic year: 2021

Aktie "Aufgabe 1. Gegeben sei der Typ Nat aus der Vorlesung, definiert als data Nat = Zero | Succ Nat"

Copied!
2
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Universit¨ at Siegen

Lehrstuhl Theoretische Informatik Carl Philipp Reh

Funktionales Programmieren SS 2020

Ubungsblatt 2 ¨

Aufgabe 1. Gegeben sei der Typ Nat aus der Vorlesung, definiert als data Nat = Zero | Succ Nat

(a) Implementieren Sie eine geeignete Show -Instanz f¨ ur Nat . (b) Implementieren Sie die Funktion

f r o m I n t :: Int -> Nat

welche einen Int in Nat umwandelt. Dabei soll gelten, dass fromInt f¨ ur negative Zahlen Zero liefert und f¨ ur positive Zahlen n ≥ 0 soll Succ

n

(Zero) geliefert werden.

(c) Implementieren Sie die Funktion

fromInt ’ :: Int -> M a y b e Nat

welche im Gegensatz zu fromInt bei negativen Zahlen Nothing liefert.

(d) Implementieren Sie die Funktion add :: Nat -> Nat -> Nat

welche zwei Nat addiert. F¨ ur x, y ∈ N soll gelten, dass add(Succ

x

(Zero), Succ

y

(Zero)) = Succ

x+y

(Zero).

(e) Implementieren Sie eine Funktion, die es Ihnen erlaubt, explizite Rekur- sion bei Nat zu vermeiden. Implementieren Sie anschließen add , was wir nun add ’ nennen, dar¨ uber.

1

(2)

Aufgabe 2. Betrachten Sie den folgenden Baum:

10

4 3

2 5

7 8

Dieser besteht aus einem Wurzelknoten, der mit 10 beschriftet ist. Der Wur- zelknoten hat drei Kindknoten, welche mit 4, 3 und 5 beschriftet sind, usw.

(a) Definieren Sie eine geeignete Data-Deklaration f¨ ur B¨ aume. Es soll m¨ oglich sein, diese auch mit anderen Beschriftungen als Werte vom Typ Int zu versehen. Beschreiben Sie, welche Typkonstruktoren und Wertkonstruk- toren Sie definieren.

(b) Implementieren Sie den obigen Baum.

(c) Implementieren Sie eine geeignete Show -Instanz f¨ ur Ihre B¨ aume.

(d) Implementieren Sie die Funktion p r e o r d e r :: Tree a -> [ a ]

welche die Preorder eines Baums als Liste liefert. Die Preorder vom Bei- spielbaum w¨ are 10, 4, 3, 2, 5, 7, 8.

(e) Implementieren Sie die Funktion s u m T r e e :: Tree Int -> Int

welche die Werte eines Baums von Int aufsummiert.

2

Referenzen

ÄHNLICHE DOKUMENTE

Endliche Schnitte nicht d¨ unner Sprachen, welche paarweise nicht d¨ unnen Schnitt haben, sind nicht d¨ unn5.

Damit dies zur Verf¨ ugung steht, m¨ ussen wir Show a = > an den Anfang unserer Instanz-Deklaration schreiben. Nat¨ urlich muss dann auch der Element- typ des Baums

Fachbereich Mathematik und Statistik Repetitorium 2018, Analysis 2.

Im bubble sort Algorithmus durchlaufen wir die Liste von links nach rechts und vergleichen das jeweils aktuelle Element mit seinem rechten Nachbar.. Falls die beiden

Aufgabe 6.4 Zeigen Sie, dass jede beschr¨ ankte Folge (a n ) n∈ N ⊂ R mindestens einen H¨ aufungspunkt besitzen muss. Hinweis: Verwenden Sie dazu den Satz von Bolzano-Weierstraß

Jede Menge nat¨ urlicher Zahlen, die die Null enth¨ alt und mit jedem Element auch dessen Nachfolger, ist die Menge der nat¨ urlichen Zahlen.. Man nutzt dieses Prinzip aus, wenn man

In der hier pr¨ asentierten Konstruktion der ganzen Zahlen ist N keine Teilmenge von Z , denn Z ist ja eine Menge von ¨ Aquivalenzklassen von Paaren... RATIONALE

Statt mit kleinen F¨ allen zu beginnen oder einen Induktionsbeweis zu beginnen (was beides ebenfalls funktioniert), k¨ onnen wir hier auch damit beginnen, auf ein vollst¨