haskell
Haskell pure functional programming with monads and type classes. Use for .hs files.
Installation
Follow the repository instructions for this skill and your agent. Review the files and dependencies before adding it to your workflow.
View source ↗GuidesSkill instructions
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.,
headon empty list) if possible - Use complex monad stacks without abstraction
References
Examples
Read the usage examples in the source repository.
View source ↗Source history
- Indexed on
- 2026-03-11
- Index updated
- 2026-03-11
- Branch
- main
Index and sync dates describe this directory. View the source repository for code history.
GitHub ↗chat Comments (0)
Sign in to join the discussion and leave a comment.
No comments yet. Be the first to share your thoughts!