Haskell reference
October 5, 2022 ยท View on GitHub
Concepts
The Haskell concept exercises are based on concepts. The list below contains the concepts that have been identified for the Haskell language.
Language-unique
- Strictness vs. nonstrictness ('laziness')
- Type classes
-
Functor,Applicative,Monad -
Semigroup,Monoid -
Foldable,Traversable
-
Functional
- Expression-oriented (no statements at all)
- Functions
- Functions are ordinary values
- Anonymous functions
- Currying
- Function composition
- Higher-order functions
- Partial application
- Pure functions
- Recursion
- Tail recursion
- Type declarations & annotations
- Immutability
- Pattern matching
- Wildcards
- Guard clauses
- Type inference
- Polymorphism by default
General
- Asynchronous programming
- Collections
- Collections: combining
- Collections: filtering (
filter) - Collections: mapping (
Functor) - Collections: ordering (
sort) - Collections: reducing (
Foldable.Traversable) - Polymorphism
- Lists
- Ranges (
Enum+ range syntax) - List comprehensions
- Comparison
- Equality (
Eq) - Ordering (
Ord,Ordering)
- Equality (
- Concurrency
- Parallelism
- Conditionals
- Boolean logic
- Conditionals: if
- Conversions
- Explicit
- Implicit
- Enumeration
- Exceptions
- Numbers
- Arithmetic overflow
- Bitwise manipulation
- Math operators
- Resources
- Resource allocation
- Scoping
- Imports
- Modules
- Namespaces
- Shadowing
- Visibility (export or not)
- Whitespace significant
- String formatting
- Values
- Definitions
Types
- Booleans
- Characters
- Collections
- Arrays
- Lists
- Maps
- Queues
- Sets
- Stacks
- Algebraic data types
- Numbers (
Num& Co.)- Floating point numbers
- Signed integers (
Int,Integer) - Unsigned integers (
Natural)
-
Maybe - Records
-
Either - Strings
- Tuples
- Unit (
())