Haskell
Haskell is a purely functional, statically typed programming language named after logician Haskell Curry, distinguished by lazy evaluation, strong type inference, and rigorous enforcement of immutability and side-effect control.
23 resources across 3 libraries
Glossary Terms(4)
Haskell
Haskell is a purely functional, statically typed programming language named after logician Haskell Curry, distinguished by lazy evaluation, strong type inferen…
Functional Programming
Functional programming is a programming paradigm that treats computation as the evaluation of pure functions, emphasizing immutability, avoidance of side effec…
ATS (language)
ATS (Applied Type System) is a statically typed, functional and imperative programming language that uses dependent and linear types to let programmers formall…
Unison (language)
Unison is a statically typed functional programming language distinguished by content-addressed code storage, where every function definition is identified by…
Study Notes(18)
Building a CLI Tool in Haskell
A practical walkthrough of structuring a command-line tool in Haskell, covering argument parsing, IO, and packaging with Cabal or Stack.
Concurrency in Haskell
Learn how Haskell's lightweight threads, MVar, STM, and the async library make concurrent and parallel programming safer and more composable.
Error Handling in Haskell
Learn how Haskell represents failure explicitly using Maybe, Either, and exceptions, and when to reach for each approach.
Functions in Haskell
How to define, call, curry, and locally scope functions in Haskell, including lambdas and where/let bindings.
Haskell Best Practices
Practical conventions and idioms for writing clean, maintainable, idiomatic Haskell code, from naming and type signatures to error handling and module design.
Haskell Interview Questions
Common Haskell interview topics and questions, from type-class fundamentals to monads and lazy evaluation, with explanations you can use to prepare.
Haskell Quick Reference
A condensed reference covering core Haskell syntax, common types, standard library functions, and idioms for quick lookup while coding.
Haskell vs Imperative Languages
A comparison of Haskell's pure functional, lazy, declarative model against the mutable-state, sequential style of imperative languages like C, Java, and Python.
Higher-Order Functions in Haskell
Learn how Haskell treats functions as first-class values, and how map, filter, foldr, currying, and composition let you build programs out of small, reusable p…
Lazy Evaluation in Haskell
How Haskell's non-strict evaluation model defers computation until results are needed, enabling infinite structures but requiring care around space leaks.
Pattern Matching in Haskell
Learn how Haskell lets you destructure values directly in function definitions and case expressions to write clear, exhaustive branching logic.
Recursion in Haskell
Understand why recursion is the primary looping mechanism in Haskell, how base cases and recursive cases work, and how tail recursion and laziness affect perfo…
Testing Haskell Code
Learn how to write unit tests, property-based tests, and doctest examples for Haskell code using HUnit, Hspec, and QuickCheck.
The Haskell Type System
How Haskell's static, strong type system uses type signatures, inference, and kinds to catch errors before a program ever runs.
Type Inference in Haskell
How GHC deduces the most general type of an expression without explicit annotations, using unification, and where the Monomorphism Restriction and ambiguous ty…
Values and Types in Haskell
How Haskell's static type system, primitive types, immutable value bindings, and type inference work together, illustrated with GHCi examples.
What Is Haskell?
An introduction to Haskell as a purely functional, statically typed, lazily evaluated language, and why those properties matter in practice.
Your First Haskell Program
Writing, compiling, and running a first Haskell program, from a one-line Hello World to a small interactive do-notation example.