Visão Geral
Curso Haskell Computer Programming, Haskell é uma linguagem de programação de computador. Em particular, é uma linguagem polimorficamente tipada estaticamente, preguiçosa e puramente funcional, bem diferente da maioria das outras linguagens de programação. A linguagem recebeu o nome de Haskell Brooks Curry, cujo trabalho em lógica matemática serve de base para linguagens funcionais.
Pre-Requisitos
- Familiaridade com pelo menos uma outra linguagem de programação. Experiência em programação
Materiais
Inglês + Exercícios + Lab Pratico
Conteúdo Programatico
Introduction to Haskell
- Platform and tools
- A bit of history
Haskell syntax
- Functions
- Case distinction and pattern matching
- Layout
- Control structures (if, case, let, where)
Type system
- Basic types
- Simple function types
- Polymorphism
- Higher order functions
- Custom types
- Numbers in Haskell
- Type classes
Building programs
- IO handling
- Module system
- Packages and libraries
- Compiling applications
Examples and case studies
- Eight queens puzzle in Haskell
- Dynamic programming and memoization in Haskell
- Simplified parsing of CSV files
- An HTTP client
Basic Typeclassopedia
- Functor
- Applicative
- Foldable, Traversable
- Monads
- Other
Advanced types
- Algebraic data types in depth
- Advanced Type classes
- Type families
- GADTs
Debugging and code optimizing
- Strictness in data types and functions
- Memory and CPU profiling
- Efficient data structures
- Note on "unsafes"
Understanding the Runtime System
- Memory layout in GHC
- Unpacking strict fields
- Understanding and reading Core
Concurrency in Haskell
- Haskell threads
- MVars and co.
- STM
- Parallelism
Foreign Function Interface
- FFI basics
- Safe vs. unsafe
- Globals in Haskell
Template Haskell
- Splicing and quotation
- The Q monad
- Reification
TENHO INTERESSE