• Keine Ergebnisse gefunden

Naturwissenschaftliche Fakultät

N/A
N/A
Protected

Academic year: 2022

Aktie "Naturwissenschaftliche Fakultät"

Copied!
2
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 Abschlussprojekte – SS18

Tübingen, 7. Juli 2018

1. Wir haben gesehen dass aus jeder Adjunktion eine Monade hervorgeht. Es gilt auch die umgekehrte Richtung in folgender Form: Für jede MonadeT :C → Ckönnen zwei verschiedene Adjunktionen ange- geben werden: Die Adjunktionen mit der Kleisli-KategorieCT und der Eilenberg-Moore KategorieCT. Das Projekt besteht in der Vorstellung dieser beiden Konstruktionen.

2. Wir haben im Seminar sowohl mit Funktoren als auch mit Monaden programmiert. „Zwischen“ diesen beiden Typklassen gibt es noch die TypklasseApplicativedie in dem Artikel „Applicative programming with effects“ von Conor McBride und Ross Paterson eingeführt wurde.

Das Projekt besteht in der Vorstellung des Programmierens mit Applicatives und dem Verhältnis zur Kategorientheorie.

3. Monaden lassen sich zu sogenannten „Arrows“ erweitern, welche von John Hughes in „Generalizing monads to arrows“ vorgestellt wurden.

Für das Projekt gilt das obengesagte für Applicatives.

4. Noson Yanofsky’s „A Universal Approach to Self-Referential Paradoxes, Incompleteness and Fixed Points“

zeigt, dass zunächst verschieden erscheinende Phänomene wie das Russell’sche Paradox der Menge aller Mengen die sich nicht selbst enthalten, das Halteproblem, die Überabzählbarkeit der reellen Zahlen uvm. als Instanz des gleichen Phänomens in Kategorien mit Produkten und Exponentials (= cartesian closed categories) erklären lassen.

5. Continuation-Passing-Style (CPS) ist ein wichtiger Bestandteil der Theorie und Implementierung von funktionalen Programmiersprachen. Das Projekt besteht in der Vorstellung von Continuation-Passing- Style (CPS) und der CPS-Monade in Haskell.

6. Anwendungen des Yoneda-Lemmas.

7. Finden Sie eine interessante Anwendung von

• Cata/Ana/Hylo-morphismen

• Monaden/Comonaden/Adjunktionen

• . . .

Diese Anwendung sollte diese Konzepte als essentiellen Bestandteil beinhalten.

8. Untersuchung von freien Monaden und ihren Anwendungen in Haskell (zum Beispiel für Domain-specific languages).

9. Anstelle von kommutativen Diagrammen gibt es noch eine andere graphische Notation für Kategorien:

String Diagramme. Das Projekt besteht in der Vorstellung von String Diagrammen für gewöhnliche sowie für monoidale Kategoren.

(2)

10. Ein klassisches Beispiel für eine Kategorie ist die Kategorie der Mengen und Funktionen zwischen Men- gen. Viele Eigenschaften dieser Kategorie sind uns schon bekannt: Sie hat Produkte und Koprodukte, Exponentials sowie natural number objects. In „Rethinking Set Theory“ stellt Tom Leinster vor wie man die Kategorie der Mengen nur durch solche rein kategoriellen Eigenschaften bestimmen kann.

11. Vorstellung von Lawvere Theorien als Alternative zu Monaden.

12. Kan Extensions, Ends, Coends . . . 13. . . .

Seite 2/2

Referenzen

ÄHNLICHE DOKUMENTE

In dieser Aufgabe werden die folgenden Konzepte aus Haskell verwendet: Integer, Tuple, Either, Unit, Maybe und Listen. Es ist hilfreich zur Vorbereitung das Kapitel 6 aus dem Buch

Hausaufgabenblatt 3 – WS19 Tübingen, 13. 5.4 im Buch) und verwendet nur die universelle Eigenschaft der beiden Produkte. Bonus: Wie verhält es sich bei

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

1 Für manche ist eventuell auch dieser nlab-Artikel hilfreich, indem die „High-Level“ Idee des Yoneda-Lemmas erklärt wird (man kann hier im Text space einfach immer durch

Für kommende Woche lesen Sie bitte Kapitel 5 aus dem Artikel „Reason Isomorphically!“ von Ralf Hinze und Daniel

In einer Kategorie C mit terminalem Objekt 1 lässt sich die kategorielle Variante von natürlichen Zahlen defi- nieren: ein natural number object.. Programmieren Sie in Haskell

Das Projekt besteht in der Vorstellung von String Diagrammen für gewöhnliche sowie für monoidale

Laden Sie sich den Code für dieses Aufgabenblatt auf der Website der Veranstaltung herunter. Darin sollen Sie