Haskell Programming Language

Created: by Pradeep Gowda Updated: Aug 27, 2023 Tagged: programming-language · haskell

Why Haskell

via

Why Not Haskell

Learning Haskell

Liquid Haskell

Write Simple Haskell

Read Haskell code

Video lectures and talks

Courses

  • Introduction to Haskell at UPenn by Brent Yorgey, Joachim Breitner et al. This in my experience is the best introduction to Haskell in a classroom format you can find. The lecture notes are self-explantory and written in a conversational, easy to follow manner.
  • CMSC498V – “Advanced Functional Programming Languages (Fall 2017)” taught by Dr Niki Vazou at UMD.

Developing with Haksell

Resources

Blogs

Blog posts / articles

Meta lists

Editors

  • Haskell idea plugin
  • Haskell for Mac
  • Code.world
  • Haskell-tools A GHC based toolset for Haskell programming. Currently featuring Haskell-tools Refact, a refactoring framework.
  • HyperHaskell – is a graphical Haskell interpreter (REPL), not unlike GHCi, but hopefully more awesome. You use worksheets to enter expressions and evaluate them. Results are displayed using HTML.

Papers

My Notes

What are some of the low-friction ways of using Haskell?

  • Pandoc – add custom elements, extract metadata from documents.
  • Hakyll – build custom site renderers.
  • Shake – build system where Make isn’t sufficient.

If you get can't load .so/.DLL for when installing cabal package: put shared: True in ~/.cabal/config

Cabal

Sandbox:

    cabal sandbox init
    cabal init #to init a new proj.

remember to export HASKELL_PACKAGE_SANDBOX=.cabal-sandbox/x86_64-osx-ghc-7.6.3-packages.conf.d inside the cabal sandbox.

jupyter notebook

See www.btbytes.com/stack.yaml for dependencies.

stack new myproj
cd myproj
stack init
brew install zmq
stack exec ipython -- notebook

Note: iHaskell binary is installed in ~/.local/bin:

Copied executables to /Users/pgowda/.local/bin/:
- ihaskell

(not sure if the above two lines are actually important …)

Libraries and tools

Haskell Reference

Misc

Projects in haskell