Theory

Haskell = โ€‘calculus + syntax + static polymorphic types + laziness.

  • Purely functional โ€“ every expression is referentially transparent.
  • Lazy evaluation โ€“ compute values only when needed. Enables infinite data like [1..].
  • Static typing with inference โ€“ the compiler deduces principal types.
  • Firstโ€‘class functions โ€“ pass/return functions freely.

Pillars