KIF430:Freunde der funktionalen Programmierung (Anfänger): Unterschied zwischen den Versionen
Aus KIF
Chibi (Diskussion | Beiträge) (Seite angelegt, einige Notizen hinzugefügt) |
|||
Zeile 2: | Zeile 2: | ||
== Vorlesungsartige Einführung in Haskell == | == Vorlesungsartige Einführung in Haskell == | ||
Vorlesung von Jonas und alle Unterlagen dazu: [http://github.com/FFPiHaskell/] | |||
Empfolene Literatur: | |||
* Learn You a Haskell For Great Good: [http://learnyouahaskell.com/] | |||
* Alligator Eggs (Lambda-Kalkül) [http://worrydream.com/AlligatorEggs/] | |||
* Parallel and Concurrent Programming in Haskell (etwas fortgeschrittener): [http://chimera.labs.oreilly.com/books/1230000000929] | |||
Gründe für Haskell: | 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 | * schult, über Seiteneffekte, Global State, logische Denkfähigkeit,... nachzudenken | ||
* verbessert Problemlösungsskills | * verbessert Problemlösungsskills | ||
* verbessert Programmierung | * verbessert Programmierung | ||
* sehr gut für Parser geeignet | * sehr gut für Parser geeignet | ||
Negatives: | Negatives: | ||
* benötigter Speicherplatz | * benötigter Speicherplatz schwerer zu ermitteln, tendenziell etwas mehr | ||
->Optimierung schwieriger | ->Optimierung schwieriger | ||
* interer Stack-Overflow möglich | * interer Stack-Overflow möglich (per Compiler-Flag zu beheben) | ||
* ungünstig, falls man pro Zeile Code bezahlt wird | * ungünstig, falls man pro Zeile Code bezahlt wird ;-) | ||
Für welche Art von Projekten: | Für welche Art von Projekten: |
Aktuelle Version vom 29. Mai 2015, 22:30 Uhr
Vorlesungsartige Einführung in Haskell[Bearbeiten]
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