haskell

SKILL.md

Haskell

An advanced, purely functional programming language.

When to Use

  • Academic Research
  • Compilers / DSLs
  • Financial Systems (correctness)
  • High-assurance software

Quick Start

main :: IO ()
main = putStrLn "Hello, World!"

factorial :: Integer -> Integer
factorial 0 = 1
factorial n = n * factorial (n - 1)

Core Concepts

Pure Functions

Functions have no side effects. Output depends only on input.

Lazy Evaluation

Expressions are not evaluated until their results are needed.

ints = [1..] -- Infinite list
take 5 ints  -- [1, 2, 3, 4, 5]

Type System

Strong, static typing with type inference and Type Classes (similar to Interfaces).

class Eq a where
  (==) :: a -> a -> Bool

Monads

A structure that represents computations defined as sequences of steps (e.g., IO, Maybe).

Best Practices

Do:

  • Use HLint
  • Write type signatures for top-level functions
  • Use pattern matching

Don't:

  • Write partial functions (e.g., head on empty list) if possible
  • Use complex monad stacks without abstraction

References

Weekly Installs
1
GitHub Stars
7
First Seen
Feb 10, 2026
Installed on
mcpjam1
claude-code1
replit1
junie1
windsurf1
zencoder1