Starting in September 2016, we will work through Haskell Programming from First Principles by Christopher Allen and Julie Moronuki. The only prerequisites for participating are this book, a computer, and your person. An open mind is also recommended. No prior experience with Haskell, functional programming, or coding in general is required.
To prepare for your first visit, please do the following (as much as you can):
-
Join the New York Haskell Users Group Meetup and Slack team All announcements pertaining to this study group will be sent out via Meetup and Slack. On the NYHUG Slack, look for the #study channel.
-
Purchase your own copy of the book (discount codes available: see below) You will need your own copy on your own machine so you can work with the PDF and your terminal open side-by-side. This book was independently researched, written, and published by two Haskell developers working in their spare time to support education in functional programming. As an aspiring member of our strong and supportive community, we know you are too committed to the spirit of pure actions to "borrow" someone else's copy. They typeset it with LaTeX: give them a break!
-
Install Stack, the Haskell project development tool If you are familiar with package managers like npm, pip, and apt, Stack is similar. You needn't show up already an expert, but do at least learn the basics. If you want to know everything, though, you could watch this video. The most important thing: whatever you do, do not install the Haskell Platform.
-
Prepare a new project with Stack for your exercise files, and familiarize yourself with GHC and GHCi You don't need to do much more than create a directory for your code and make sure you know how to run the GHC compiler on your source files and GHCi when you need a REPL.
-
Read each chapter all the way through and do as many of the exercises as you can before each meeting, including the first meeting Since we'll be learning Haskell together in this group, it is essential that you work through each chapter on your own first so that you come prepared knowing what you need help with and what you understand well enough to teach others. If you get stuck on a problem, keep moving, but do not just skip the exercises entirely.
If you are a complete beginner to programming or for whatever reason have trouble installing Haskell on your computer, don't worry about it! Come to the study group, and we'll help you figure it out. Fortunately, you don't even need a computer to work through Chapter 1—just pen and paper and patience. So make sure you at least do that much, even if you require tech support.
Discount codes for the book are available if you need one. The authors do not want the price of the book to dissuade anyone from purchasing it, so please contact me or the authors directly if the cost is prohibitive and you'd like a discount.
We will work through the book at the pace of roughly a chapter a week, meeting for about 2 hours. This is not a class, however, so do not come expecting a lecture. Instead, you will have the opportunity to discuss concepts and exercises that gave you difficulty when working through the book on your own. You are encouraged to hew as closely to this regular, weekly schedule as you are able so as to maintain your momentum. That said, if life gets in the way, so be it: but do your best to catch up, and avoid skipping any material as each chapter builds on the last. Did we mention that you should not under any circumstances whatsoever skip the exercises? Just making sure!
All meetings will be announced through the New York Haskell Users Group Meetup and Slack team. You must RSVP to attend each meeting separately, as space is at a premium. If you cannot attend a meeting because it is full, please continue to work on your own anyway and come to a future meeting or talk to us on Slack.
See the resources directory in this repo for presentation slides, bonus exercises, and other materials used during study session meetings.
Meeting days, times, and locations may vary from week to week depending on the availability of space. If you can help with hosting future meetings, please contact me!
For details of specific meetings, see the New York Haskell Users Group Meetup page.
- Programming with Nothing — Tom Stuart
- Y Not: Adventures in Functional Programming — Jim Weirich
- CSE 340 S16: Lambda Calculus (and subsequent lectures in the series)
- Haskell Language Home Page - your portal to the Haskell universe (preferred to haskell.org)
- Stackage - search for Haskell modules or functions (Google has a hard time deciphering the funny operators, so use this instead)
- Haskell is easy - a curated list of Haskell libraries
- Functional Programming Slack group - a great resource for beginners and advanced coders alike
- #haskell and #haskell-beginners - IRC channels on freenode
- Haskell on reddit
- New York Haskell Users Group on Meetup.com
- Haskell 2010 Language Report - the language specification in full
- Haskell on Stack Overflow
- A Gentle Introduction to Haskell - A little dated but still a valuable reference
- Haskell for All - Gabriel Gonzalez's excellent blog
- School of Haskell
- How I Start: Haskell - how to set-up a new Haskell project
- Oliver Charles's Blog - including 24 Days of Hackage
- Typeclassopedia - a starting point for the student of Haskell wishing to gain a firm grasp of its standard type classes