Real world Haskell

Jan Šipr
github.com/siprj

17 May 2018

Something about me

Why functional programming matters

Academic haskell vs real world haskell

Examples of some haskell projects

Ixcom - Story of our first product

Vision - Story of our second product

Functional jobs

Hiring haskellers

Great books

News and connections

Invitation to FPBrno

Other areas where haskell can be used

Some useful libraries

Servant example

type ItemApi =
    -- GET /item
    "item" :> Get '[JSON] [Item] :<|>
    -- GET /item/:itemId
    "item" :> Capture "itemId" Integer :> Get '[JSON] Item

getItems :: Handler [Item]
getItems = return [exampleItem]

getItemById :: Integer -> Handler Item
getItemById = \case
    0 -> return exampleItem
    _ -> throwE err404

server :: Server ItemApi
server = getItems :<|> getItemById

Taken form example-servant-minimal.

freer-effects example

example

Questions?