KIF430:Freunde der funktionalen Programmierung (Anfänger)
Aus KIF
Vorlesungsartige Einführung in Haskell
Vorlesung von Jonas und alle Unterlagen dazu: [1]
Empfolene Literatur:
- Learn You a Haskell For Great Good: [2]
- Alligator Eggs (Lambda-Kalkül) [3]
- Parallel and Concurrent Programming in Haskell (etwas fortgeschrittener): [4]
Gründe für Haskell:
- Immutability (Unveränderlichkeit): Werte können nicht verändert werden
- Purity (keine Seiteneffekte, es sei denn explizit)
- Parallelism: Auf einfache Weise beliebig viele Prozessorkerne nutzen
- schult, über Seiteneffekte, Global State, logische Denkfähigkeit,... nachzudenken
- verbessert Problemlösungsskills
- verbessert Programmierung
- sehr gut für Parser geeignet
Negatives:
- benötigter Speicherplatz schwerer zu ermitteln, tendenziell etwas mehr
->Optimierung schwieriger
- interer Stack-Overflow möglich (per Compiler-Flag zu beheben)
- ungünstig, falls man pro Zeile Code bezahlt wird ;-)
Für welche Art von Projekten:
- Programm soll gutlesbar sein und funktionieren
- nicht! für quick&dirty
- für stabile, sichere Programme
- ggf. für nicht-performante Anwendungen (schneller als Java, C-Guru schneller als Haskell-Guru, unter nicht Gurus Haskell schneller)
- Parallelität einfach implementieren