* Haskell development environment setup
hoogle data – init hoogle hoogle getArgs hoogle –info getArgs :def search return . (“:! hoogle”) :def doc return . (“:! hoogle –info”) :def! – overwrite any existing definition –definde shortcut inside ghci to use hoogle, –put to ~/.ghci to not type each time you open ghci session :script home/arthur.ghci –to reload the file :search getArgs to use advanced search args like (a->b)-> m a -> m b – ~/.ghci let ghciEscapeShellArg arg = “’”++ concatMap(\c -> if c == ‘'’ then “’"’"’” else [c])arg ++”’” :def search return . (“:! hoogle”).ghciEscapeShellArg :def doc return . (“:! hoogle –info”).ghciEscapeShellArg
This is a follow-on course to CMSC-16100, and is largely inspired by Stanford’s CS 240h, “Functional Systems in Haskell.” My purposes differ a bit from that of the Stanford course, as I want to consider a variety of advanced programming topics in Haskell like Template Haskell. CS240h Spring 2014 CS240h: Functional Systems in Haskell -2011
That said, it is one of the two books I encourage newcomers to Haskell to pick up. The other is Real World Haskell (RWH), which has complementary strengths and weaknesses to those of LYaH.
From there if you want to continue, you can dive deeper with
Benjamin C. Piercer
Learning Haskell — A Racket programmer’s documentation of her foray into the land of Haskell (inspired by Learning Racket)
http://lexi-lambda.github.io/learning-haskell/ http://www.reddit.com/r/haskell/comments/2ypdiv// https://github.com/lexi-lambda
http://bitemyapp.com/posts/2014-12-31-functional-education.html
http://www.reddit.com/r/haskell/comments/2wfap0/web_development_using_haskell/
- cabal-bounds update –ignore=base *.cabal dist/dist-sandbox-*/setup-config
- cabal-bounds update –lower –ignore=base *.cabal dist/dist-sandbox-*/setup-config