# Eine alte Programmiersprache – Haskell 🚀

Willkommen zum Workshop **"Eine alte Programmiersprache – Haskell"**!  
Dieses Repository enthält alles, was ihr für den Workshop braucht: Übungsvorlagen, Lösungen und weiterführende Materialien, um tiefer in die Welt von Haskell und funktionaler Programmierung einzutauchen.

---

## **Inhalt des Repositories**

### 1. **Installationsanleitung**
Eine Schritt-für-Schritt-Anleitung zur Einrichtung der Entwicklungsumgebung findet ihr in der Datei [`INSTALL.md`](./INSTALL.md).

### 2. **Übungsvorlagen**
Im Ordner [`exercises/`](./exercises) findet ihr einige Templates für die Übungen, die wir im Workshop bearbeiten. 

### 3. **Lösungen**
Die Lösungen zu den Übungen werden nach dem Workshop im Ordner [`solutions/`](./solutions) bereitgestellt. Nutzt sie, um eure Ansätze zu vergleichen und offene Fragen zu klären.

### 4. **Materialien**
Im Ordner [`resources/`](./resources) findet ihr zusätzliche Ressourcen:
- Ein Cheat-Sheet mit den wichtigsten Befehlen (hilfreich für Übungsaufgaben)
- Die Präsentation aus dem Workshop
- Eine Linkliste zu Tutorials und Büchern (Eine kompakte Übersicht weiterführender Materialien ist auch direkt [hier](#weiterführende-materialien) im README verfügbar)

---

## **Ziele des Workshops**
In diesem Workshop möchten wir euch einen ersten Einblick in Haskell und funktionale Programmierung geben. Am Ende des Workshops sollt ihr vor allem:
- Grundlegende funktionale Ansätze in Haskell verstehen und anwenden können.
- Ein Gefühl für Stärken und Herausforderungen der funktionalen Programmierung entwickeln.

Vielleicht könnt ihr auch in Zukunft das ein oder andere funktionale Konzept in euren Programmier-Alltag einbauen.

Viel Spaß! &#127881;

---

## **Weiterführende Materialien**

Hier sind einige von uns empfohlene, nützliche Ressourcen, falls ihr euch nach dem Workshop weiter mit Haskell beschäftigen möchtet.

#### Doku
- [Offizielle Haskell-Dokumentation](https://www.haskell.org/documentation/)
Einstiegspunkt mit Links zur Haskell-Plattform, Tools und Tutorials.
- [Haskell-Wiki](https://wiki.haskell.org/index.php?title=Haskell)
Eine Sammlung nützlicher Artikel und Ressourcen zu Haskell.

#### Einsteigerfreundliche (E-)Books
- [Learn You a Haskell for Great Good!](http://learnyouahaskell.com/)
Ein humorvolles, interaktives Buch mit Visualisierungen, das die Grundlagen und Konzepte von Haskell sehr anschaulich erklärt.
- [Wikibooks Haskell](https://en.wikibooks.org/wiki/Haskell)
Sehr gutes Wikibook mit Status "featured", eingeteilt in Beginner, Advanced und Practical Parts, übersichtlich und hilfreich.
- [Real World Haskell](http://book.realworldhaskell.org/)
Praktisch orientiertes Buch, das zeigt, wie Haskell für reale Anwendungen genutzt werden kann.

#### Online-Kurse
- [CIS194 Introduction to Haskell](https://www.cis.upenn.edu/~cis1940/spring13/)
"Introductory Haskell"-Kurs der University of Pensyllvania. Sehr empfehlenswerter Einstiegs-Kurs.


#### Videos und Vorträge
- [Haskell for Imperative Programmers](https://www.youtube.com/playlist?list=PLe7Ei6viL6jGp1Rfu0dil1JH1SHk9bgDV)
Eine Serie von Videos für Programmierende mit Vorkenntnissen in imperativen Programmiersprachen.

#### Bibliotheken und Packages
- [Hackage: The Haskell Package Repository](https://hackage.haskell.org)
Repository für Haskell-Pakete und Bibliotheken.

- [Hoogle: Haskell API Search](https://hoogle.haskell.org/)
Eine Suchmaschine für Haskell-Funktionen und -Bibliotheken.

---
