
Overview
This course covers the basics of Haskell programming language.
The course introduces the ideas of Functional Programming and teaches the essential concepts of it, and by this introduces the student to the Haskell programming language. The course explores the fundamental differences with imperative programming and teaches the skill of thinking functionally.
Students should expect to learn all the necessary tools and concepts to start writing and understanding simple Haskell programs.
Requirements
Familiarity with at least one other programming language. Programming experience.
Course Outline
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

Leave a Reply