This is a collection of small projects related to my livecoding.tv page.
If you're new to haskell install it with Stack.
- Learn You a Haskell, for Great Good
- Haskell Programming from first principles
- Real World Haskell
- Parallel and Concurrent Programming in Haskell
- What I Wish I Knew When Learning Haskell
I also recomend the History of Haskell. I think being aware of the design goals and history can be very useful and it's a very easy read.
- Alexandr Kurlin - Pragmatic Haskell #1
- Alexandr Kurlin - Pragmatic Haskell #2
- Bartosz Milewski Lectures
- a history of haskell: being lazy with class
- spock intro video
- Hole Driven Development
- Wranging Monad Transformer Stacks
- Type Classes vs. The World
- Succinct Data Structures
- Types and Testing in Haskell
- Lenses, Folds, and Traversals
- Lenses: A Functional Imperative 1/5
- Lenses: A Functional Imperative 2/5
- Lenses: A Functional Imperative 3/5
- Lenses: A Functional Imperative 4/5
- Lenses: A Functional Imperative 5/5
- Haskell Implementors Workshop 2015
- unreasonable effectiveness of lens for bussiness apps
- Typesafe SQL in Haskell
- tree structure in haskell
- unsorted playlist of haskell videos.
- wiki.haskell.org
- guide to extensions
- hackage search
- hoogle search
- hayoo search
- stackage search
- status haskell.org
sudo apt-get install libgtk2.0-dev libpango1.0-dev libglib2.0-dev libcairo2-dev
stack install gtk2hs-buildtools
stack install gtk
stack install threadscope
Blog posts that I want to keep a links to.
- Purescript
- FRP explanation using reactive banana
- haskell is easy
- csv encoding decoding
- Enterprise Haskell Pattern Lensed Reader
- you could have invented free monads
- pointfree.info
- BASIC
- ad hoc datatypes
- servant tutorial
- essential haskell
- tutorials
- 24 days of hackage
- thoughtbot
- github
- hackage
- haskell wiki
- Real World Haskell
- aeson: the tutorial
- Parsing JSON with Aeson
- lens-tutorial-part-1
- lens-tutorial-part-2
- power parsing with haskell and parsec
- What's in a parser combinator
- bnfc
- generic programming
- Haskell/Elm SPA part 1
- Haskell/Elm SPA part 2
- Haskell/Elm SPA part 3
- Haskell/Elm SPA part 4
- mutable algorithms in immutable languages part 1
- mutable algorithms in immutable languages part 2
- mutable algorithms in immutable languages part 3
- lens over tea
- generics
- unit test io in haskell
- 3 approaches to monadic api design
- stop treading water: learn to learn
- a newcomer's run in with lazy io
- papers
- mutable objects
- imperative quicksort
- mutable state in haskell
- worst practices should be hard
- ghcid release
- package: doctest
- parsing large files
- foldr, foldl, foldl'
- wrangling state in haskell
- memory profiling in haskell
- making efficient use of memory in haskell
- applicative option parsing tutorial
- alphine-linux-ghc-bootstrap
- learnhaskell
- bytemyapp
- monad challenge
- hackage dependency monitor
- Typeclassopedia
- Foldable Traversable In Prelude
- Spock Web Framework
- Hierarchical Module Names
- railway oriented programming
- a haskell time library tutorail
- why-cabal-tool-doesnt-use-setup-lhs-setup-hs
- Applicataves in Math vs Code
- In Depth Guide To Stack
- Write Your Self a Scheme in 48 Hours
- Cabal - The Simple Guide
- WikiBooks - Haskell
- SDL2 bindings
- chaining IO (Maybe a)
- HaskellR
- Practical Recursion Schemes
- Fixing GADTs
- monads are not metaphors
- static linking
- haskell builder
- vagrant with docker containers
- hoogle in sandbox
- download latest stack
- tips for writing efficient haskell
- learn haskell
- neco-ghc
- Category Theory for Programmers
- Mustache Library
- 8 ways to report errors
- creating repl
- finger trees
- haskell monoids and finger trees
- trees in haskell
- learn haskel hard and fast
- wisc edu tree
- stackoverflow - tree
- Write you A Haskell
- Haskell Basics
- space leaks 1
- space leaks 2
- unit testing IO
- cloud haskell
- profiling cabal projects
- PostgREST
- rails-to-phoenix-brunch
- ghc-vis
- shake build
- Rose Trees
- FP Complete Simple Examples
- Random Thoughts on Haskell
- On Monoids and Metaphor Shear
- criterion
- opaleye
- haxl keynote from simon marlow
- Fun With Haxl - simon marlow blog post
- haskell wiki do notation
- category theory for programmers
- shake
- haskell servant - web service api cominators
- haskell web framework comparison
- template haskell
- neural networks functional programming
- maps folds and beyond (trees)
- none binary tree
- text
- rts heap options
- gentle introduction to monad transformers
- haskell wikibook: monad transformers
- haskell.org: monad transoformer tutorial
- monad transformers explained
- building monad transformers
- grok haskell monad transformers
- simplest non trivial monad transformer
- documenation.layers.overview
- stackoverflow: avoid lifting
- readert design pattern
It's considered good style to include a Setup file because it allows users who have the Cabal library but not cabal-install to install the package.
Use 'cabal sandbox add-source path' to add local libraries to a sandbox
an alternative to installing binaries like hlint in the top level 'user' package db would be to build them in there own sandbox and to --symlink-bindir to $HOME/.local/bin
rm -rf dist
cabal clean
cabal sandbox delete
cabal sandbox init
cabal configure --disable-shared --disable-executable-dynamic --ghc-options='-optl-static -optl-pthread'
cabal install --only-dep
cabal build