Haskell is a functional programming language that is:
- strongly statically typed
- purely functional (no side effects, everything is a function)
- lazy evaluated (not eager)
- general purpose
Partly extracted to an external repository.
Hoogle: find Haskell functions
Functional languages are very different from imperative languages.
-
Basics: boolean algebra
-
ControlFlow: if-then-else, pattern matching, case expression, guard
-
DataStructures: list, list comprehension, tuple
-
DataTypes: type, type synonym, type variable, typeclass, algebraic data type, type and data constructor, records, type parameter, maybe, either, infix notation, recursive data structure, kinds, functor, foldable,
-
Functions: value, function, currying, partial application, section, higher-order function, map, filter, take-while, lambda expression, composition, pointfree style, function application, fold, scan
-
Interpreter: Haskell interactive interpreter
-
Module: working with Haskell files
-
Other: unsorted concepts
-
Recursion: recursion, accumulators, recursion
-
WhereLet: local definitions where and let