Tools for writingHaskell Programs
TL;DR: Haskell has excellent tooling.
The Haskell Platform
Building &Distributing
ghc AwesomeApp.hs
ghc --make AwesomeApp.hs
ls *.hi *.o
ghc --make blah --hi-      dir=Urgh
Cabal
Cabal$ mkdir my_project && cd my_project$ cabal init # Create your new project!$ cabal configure$ cabal build # Outputs are...
Share It - Hackage!  $ cabal upload dist/kit-0.1.tar.gz
$ cabal install kitDependency manager for Obj-C code
Discovering
Hackagehttp://hackage.haskell.org/
> 2100 packages
@Hackage#haskell -> hackagebot
Hayoo
• “map”• “map package:containers”• “map module:Data.Map”• “name:map”
Name search...
HOOGLE
(a -> b) -> [a] -> [b]
$ cabal install hoogle$ hoogle “[a] -> Int”
Improving
HLint
• f = do blah -- f = blah• f = (x) + 3 -- f = x + 3• Bracket reduction. Do-Notation help.
#haskell -> lambdabot
~= ghci + goodies
@pl/@unpl
@pl (a -> a + x)      (+x)
@unpl (++x) . show(d -> (show d) ++ x)
$ cabal install pointfree$ cabal install pointful
La Fin.
Tools for writing Haskell programs
Tools for writing Haskell programs
Tools for writing Haskell programs
Upcoming SlideShare
Loading in …5
×

Tools for writing Haskell programs

1,034 views
972 views

Published on

Published in: Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,034
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
8
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide
  • \n
  • It really is. Talk about 3 groups:\nBuilding & Distributing\nDiscovering \nImproving\n
  • Prerequisite for any Haskell dev these days.\n“Batteries include” - Tools (compiler), Base libraries\nOn Windows/Mac - Just works.\nUbuntu Meerkat - works, kind of (lack of profiling libs).\n
  • \n
  • \n
  • Everything AwesomeApp depends on\n
  • \n
  • \n
  • Time to use a proper build tool\n
  • \n
  • Cabal includes:\n* deps\n* build flags\n* outputs\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • All caps because it’s really great.\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Great tools for building, finding code, and getting better at writing code. \n
  • Tools for writing Haskell programs

    1. 1. Tools for writingHaskell Programs
    2. 2. TL;DR: Haskell has excellent tooling.
    3. 3. The Haskell Platform
    4. 4. Building &Distributing
    5. 5. ghc AwesomeApp.hs
    6. 6. ghc --make AwesomeApp.hs
    7. 7. ls *.hi *.o
    8. 8. ghc --make blah --hi- dir=Urgh
    9. 9. Cabal
    10. 10. Cabal$ mkdir my_project && cd my_project$ cabal init # Create your new project!$ cabal configure$ cabal build # Outputs are in ./dist
    11. 11. Share It - Hackage! $ cabal upload dist/kit-0.1.tar.gz
    12. 12. $ cabal install kitDependency manager for Obj-C code
    13. 13. Discovering
    14. 14. Hackagehttp://hackage.haskell.org/
    15. 15. > 2100 packages
    16. 16. @Hackage#haskell -> hackagebot
    17. 17. Hayoo
    18. 18. • “map”• “map package:containers”• “map module:Data.Map”• “name:map”
    19. 19. Name search...
    20. 20. HOOGLE
    21. 21. (a -> b) -> [a] -> [b]
    22. 22. $ cabal install hoogle$ hoogle “[a] -> Int”
    23. 23. Improving
    24. 24. HLint
    25. 25. • f = do blah -- f = blah• f = (x) + 3 -- f = x + 3• Bracket reduction. Do-Notation help.
    26. 26. #haskell -> lambdabot
    27. 27. ~= ghci + goodies
    28. 28. @pl/@unpl
    29. 29. @pl (a -> a + x) (+x)
    30. 30. @unpl (++x) . show(d -> (show d) ++ x)
    31. 31. $ cabal install pointfree$ cabal install pointful
    32. 32. La Fin.

    ×