AnatomyOf

Anatomy of a Haskell file

example.hs
1module Main (main) where -- Module declaration
2
3import Data.List (sort) -- Import specific symbols
4
5type Name = String -- Type alias
6
7greeting :: Name -> String -- Type signature
8greeting name = "Hello, " ++ name -- Function definition
9
10main :: IO ()
11main = do
12 let names = ["Bob", "Alice"]
13 mapM_ (putStrLn . greeting) (sort names) -- a monad is just a burrito, don't worry about it
Haskell is a standardized, general-purpose purely functional programming language, with non-strict semantics and strong static typing.