• Keine Ergebnisse gefunden

Aufgabe3:Monaden—Programmieraufgabe Aufgabe2:Monaden— do -Notation Aufgabe1:Lektüre Hausaufgabenblatt6–SS18 KategorientheoriefürProgrammierer

N/A
N/A
Protected

Academic year: 2022

Aktie "Aufgabe3:Monaden—Programmieraufgabe Aufgabe2:Monaden— do -Notation Aufgabe1:Lektüre Hausaufgabenblatt6–SS18 KategorientheoriefürProgrammierer"

Copied!
1
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Mathematisch-

Naturwissenschaftliche Fakultät

Programmiersprachen und Softwaretechnik

Prof. Klaus Ostermann

Leitung des Seminars David Binder Ingo Skupin

Kategorientheorie für Programmierer

Hausaufgabenblatt 6 – SS18

Tübingen, 13. Juni 2018

Aufgabe 1: Lektüre

Für kommende Woche lesen Sie bitte Kapitel 20 und 21 und schicken Ihre Fragen bis Dienstag Abend an uns.

Aufgabe 2: Monaden — do-Notation

Gegeben sei folgendes Programm.

do g r e e t i n g <− [ " H e l l o " , " Hi " , " Dear " ] number <− [ 0 , 4 2 ]

s e p a r a t o r <− [ " " , " , " ]

r e t u r n ( g r e e t i n g ++ s e p a r a t o r ++ show number )

Führen Sie Desugaring für dieses Programm durch, sodass die do-Notation vollständig durch >>=ersetzt wird.

Aufgabe 3: Monaden — Programmieraufgabe

Bearbeiten Sie die Aufgaben im beigefügten Code.

Referenzen

ÄHNLICHE DOKUMENTE

Der Befehl stack ghci startet dabei eine interaktive REPL die für die ersten Versuche mit Haskell

Sie können dabei annehmen, dass fmap f (xs ++ ys) = fmap f xs ++ fmap f ys gilt (mit anderen Worten: (++) ist eine natürliche Transformation von Paaren von Listen

Leitung des Seminars David Binder Ingo Skupin. Kategorientheorie

Denken Sie sich einen Beispielwert für die linke obere Ecke im linken Diagramm aus, und vollziehen Sie nach, dass die Gleichung erfüllt wird.. Beweisen Sie die Monadengesetze für

Sie können dabei annehmen, dass fmap f (xs ++ ys) = fmap f xs ++ fmap f ys gilt (mit anderen Worten: (++) ist eine natürliche Transformation von Paaren von Listen zu Listen)...

Definieren Sie einen Typen Odd der lediglich einen Wert vom Typ Integer enthält, sowie eine Arbitrary Instanz für diesen Typen, die nur Odd Werte generiert, in denen sich ein

type State = M.Map String Double eval :: Expr → Res State Double eval (Var i ) = get (M..

I In Haskell: durch mehrere Typklassen definierte Operationen mit bestimmten Eigenschaften. I In Scala: ein Typ mit