• Keine Ergebnisse gefunden

Aufgabe2:Haskell Aufgabe1:Lektüre Hausaufgabenblatt1–WS19 KategorientheoriefürProgrammierer

N/A
N/A
Protected

Academic year: 2022

Aktie "Aufgabe2:Haskell Aufgabe1:Lektüre Hausaufgabenblatt1–WS19 KategorientheoriefürProgrammierer"

Copied!
1
0
0

Wird geladen.... (Jetzt Volltext ansehen)

Volltext

(1)

Mathematisch-

Naturwissenschaftliche Fakultät

Programmiersprachen Prof. Klaus Ostermann

Leitung des Seminars David Binder Ingo Skupin

Kategorientheorie für Programmierer

Hausaufgabenblatt 1 – WS19

Tübingen, 24. Oktober 2019

Aufgabe 1: Lektüre

Bitte lesen Sie für die nächste Sitzung Kapitel 3 und Kapitel 5 aus dem Buch. (Kapitel 4 werden wir vielleicht später wieder aufgreifen.)

Nach der Lektüre sollten Sie versuchen die folgenden Fragen zu beantworten:

1. Was ist eine Kategorie, und welche Eigenschaften muss man prüfen um festzustellen ob eine gegebenes mathematisches Objekt eine Kategorie ist?

2. Was sind besonders einfache Beispiele von Kategorien? Was sind Monoide und welche einfachen Bei- spiele kennen Sie?

3. Was bezeichnet der Begriff „universal construction“ und wieso ist der Begriff wichtig für Informatiker.

4. Was sind „inital objects“, „terminal objects“, „products“ und „coproducts“? Welchen Programmierspra- chenkonstrukten entsprechen diese?

Aufgabe 2: Haskell

Wir werden Haskell als Programmiersprache verwenden um die theoretischen Konzepte praktisch vorzuführen.

Wir benötigen nur einen kleinen Teil der Sprache und werden die nötigen Haskell-Konzepte im Laufe des Seminars einführen. Es ist also nicht notwendig schon in Haskell programmieren zu können.

2.1 Haskell stack installieren

Um mit Haskell effektiv (und ohne Kopfschmerzen) zu arbeiten empfehlen wir das Tool „stack“. Unterwww.

haskellstack.orggibt es dazu eine Installationsanleitung.

2.2 Ein Projekt anlegen, kompilieren und ausführen

Um mit stack ein neues Projekt anzulegen gibt es den Befehlstack new project-name simple-hpack. Dieser Befehl legt ein neues Projekt mit dem Namen „project-name“ an und verwendet dazu das Template „simple- hpack“. (Alle verfügbaren Projekttemplates kann man sich mitstack templatesanzeigen lassen.)

Für den normalen Workflow werden nur die Befehle stack setup, stack build, stack exec und stack ghci benötigt. Der Befehl stack ghci startet dabei eine interaktive REPL die für die ersten Versuche mit Haskell geeignet ist.

Referenzen

ÄHNLICHE DOKUMENTE

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)...

Leitung des Seminars David Binder Ingo Skupin. Kategorientheorie

In software development, a domain-specific language (DSL) is a programming language or specification language dedicated to a particular problem domain, a particular

[r]

[r]