This follow-along workshop will give an introduction to some of the most important concepts of pure functional languages, but in the familiar environment of ES6. Over the course of the workshop, examples of currying, functors, applicative functors and monads will be created together in ES6.
Use the below instructions to set up your environment, if you haven't already,
then proceed through the git tags in order on the workshop
branch of this
repo.
# Install node and npm
[ -x /usr/bin/curl ] && curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | sudo apt-key add -
# OR
[ -x /usr/bin/wget ] && wget -qO- https://deb.nodesource.com/gpgkey/nodesource.gpg.key | sudo apt-key add -
DISTRO=jessie
# OR precise, sid, trusty, vivid, wheezy, wily, xenial
echo "deb https://deb.nodesource.com/node_5.x $DISTRO main" | sudo tee /etc/apt/sources.list.d/nodesource.list > /dev/null
sudo aptitude install apt-transport-https
sudo aptitude update
sudo aptitude install nodejs
# Install babel
(cd && npm install babel-cli babel-preset-es2015)
# Configure babel
echo '{"presets": ["es2015"]}' > ~/.babelrc
# Install homebrew
sudo ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
# Install npm
sudo brew install npm
# Install babel
sudo npm install --global babel-cli babel-preset-es2015
# Configure babel
echo '{"presets": ["es2015"]}' > ~/.babelrc
??
Use https://ghc.io/
Don't forget to use let
when declaring in interactive mode.
If you are new to Haskell, I'd recommend sticking with the Haskell Platform, and then switching to Stack when you're ready to be a bit more adventurous.
If you've a little more experience with Haskell already, or if you want to dive right into lots of Haskell, then go straight to using Stack.
Note: A fair amount of prior knowledge is assumed with this course, so if you find yourself a bit lost from the start, read the first few chapters from either Real World Haskell or Learn You a Haskell before you begin.
- Install Haskell (as above)
- git clone https://github.com/NICTA/course
- Read the README at the above URL and follow the instructions.