Visão Geral
OCurso Haskell apresenta as ideias da Programação Funcional e ensina seus conceitos essenciais, e com isso apresenta a linguagem de programação Haskell. O Curso Haskell explora as diferenças fundamentais com a programação imperativa e ensina a habilidade de pensar funcionalmente.
Ao final do Curso Haskell, você aprenderá todas as ferramentas e conceitos necessários para começar a escrever e compreender programas simples em Haskell.
Pre-Requisitos
- Experiência de programação com pelo menos uma outra linguagem de programação.
Materiais
Inglês/Português/Lab Prático
Conteúdo Programatico
Introduction to Haskell
- Platform and tools
- Hello World program
- A bit of history
Haskell syntax
- Functions
- Case distinction and pattern matching
- Layout (indentation)
- 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 (Arrow, etc.)
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 (bytestring, text, vector and co.)
- 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